180 likes | 462 Views
Streaming QSplat: A Viewer for Networked Visualization of Large, Dense Models. Szymon Rusinkiewicz Marc Levoy Stanford University. How to stream high-resolution 3D models across the net?. Motivation (1). Range scanning makes it possible to create 3D models of interesting, complex objects
E N D
Streaming QSplat:A Viewer for Networked Visualizationof Large, Dense Models Szymon RusinkiewiczMarc Levoy Stanford University
How to stream high-resolution3D models across the net? Motivation (1) • Range scanning makes it possible to create 3D models of interesting, complex objects • Fast networking is becoming common, even at home
Low speed (e.g. modem) (topological surgery, Metacreations, RealityWave) Maximum compression at any cost High speed (e.g. local disk) (architectural walkthrough, terrain flythrough) Hide presence of streaming Motivation (2) • Under what conditions has streaming been studied? Medium speed (e.g. DSL) Managing user interaction
Streaming QSplat • Based on QSplat, a multiresolution point rendering system • Low cost • No special preprocessing for streaming • No server support – use standard web server • Low CPU and graphics requirements for client • Flexible enough to allow exploration ofuser interface issues
Streaming QSplat • Review of QSplat data structure and rendering algorithm • Modifying algorithm for network streaming • User interface: • Color coding • Download order • Magnifying glass
Review of QSplat • An interactive viewer for large models(108 – 109 samples) • Fast startup and progressive loading • Maintains interactive frame rate • Compact data structure • Fast preprocessing
QSplat Data Structure • Key observation: a single bounding sphere hierarchy can be used for • Hierarchical frustum and backface culling • Level of detail control • Splat rendering
QSplat Node Structure Position and Radius Width of Cone of Normals Tree Structure Color (Optional) Normal 13 bits 3 bits 14 bits 2 bits 16 bits 6 bytes
Hierarchical frustum / backface culling Level of detail control Point rendering Adjusted to maintain desired frame rate QSplat Rendering Algorithm • Traverse hierarchy recursively if (node not visible) Skip this branch else if (leaf node) Draw a splat else if (size on screen < threshold) Draw a splat else Traverse children
Addition of Network Streaming if (node not visible) Skip this branch else if (leaf node) Draw a splat else if (size on screen < threshold) Draw a splat else if (any child not present) Draw a splat Place children on request queue else Traverse children
Addition of Network Streaming • New data structures: • Availability mask – which nodes or groups of nodes are present on the client • Request queue for parts of the model • New thread: • Make requests for regions of the file • Listen for responses • Update availability mask
Availability Mask • What granularity? • Small granularity permits requests for precisely the visible regions • Large granularity necessary for memory efficiency and to avoid overhead of many tiny requests • Current implementation uses 1k blocks
Request Queue • Prioritized queue • priorities determine download order • Cleared on every frame • View-dependent streaming
Color Coding • Color coding for visualization of relative resolution present in different areas
Demo – St. Matthew • 3D scan of 2.7 meter statue at 0.25 mm • 102,868,637 points • File size: 644 MB • Preprocessing time: 1 hour • Network bandwidth:limited to 384 kbps
Choice of Streaming Order • Choices for streaming order: • Level within hierarchy • Size of node in world coordinates • Projected screen-space size • Projected y coordinate • Combination of #4 and #5 • Coarse ordering based on quantized log(splat size) • Fine ordering based on projected y coordinate
Magnifying Glass • Provide tools for flexible control over download order • Example: “magnifying glass”
Conclusions • Streaming QSplat permits interactive display of large, complex models across a network • Given today’s network speeds, need more research on user interaction techniques for streaming 3D data