Figure 1: An example of a 3D model shown with visibility culling in a web browser reducing the immediate GPU memory consumption. The view from outside (left) consumes 693 MB, whereas the view from the inside (right) with visibility culling consumes only 161 MB of the GPU memory. This is a part of a much larger scene shown in Fig. 8. Model courtesy of Canary Wharf Contractors Limited.
AbstractAs Web3D technology advances, the need for delivering real-time 3D content online has gained traction in the academic as well as commercial world. Various efforts have been made in creating a suitable transmission format for streaming of 3D assets over the Internet. Despite being accustomed to waiting for long periods of time for massive scenes to load in CAD editors, end users often expect an instant rendering on a web browser. An effective streaming transmission format, coupled with progressive encoding methods, is able to create a better interactive experience for the users. Most of the existing techniques are either domain specific, tying the users in on a particular rendering engine, or they are too general; resulting in extra processing at the application level. In this paper, we demonstrate a novel method of transmitting 3D assets in glTF format for high interoperability and scalability in 3D Repo. Firstly, we extend glTF with the ability to stream binary data buffers with a progressive encoding technique to increase performance and overall client interactivity. Next, we extend X3DOM for glTF support and introduce multipart optimization into glTF as a way of grouping multiple meshes together which significantly reduces the number of network requests as well as draw calls. Finally, we investigate memory management protocols and devise a novel GraphicsMemoryManager suitable for streaming on top of X3DOM in order to render models that otherwise would not fit available video memory.