Streaming QSplat: A Viewer for Networked Visualization of Large, Dense Models

advertisement
Streaming QSplat:
A Viewer for Networked Visualization
of Large, Dense Models
Szymon Rusinkiewicz
Marc Levoy
Stanford University
Motivation (1)
• Range scanning makes it
possible to create 3D models
of interesting, complex
objects
• Fast networking is becoming
common, even at home
How to stream
high-resolution
3D models
across the net?
Motivation (2)
• Under what conditions has streaming been studied?
Low speed (e.g. modem)
Maximum compression at any cost
(topological surgery, Metacreations, RealityWave)
Medium speed (e.g. DSL)
Managing user interaction
High speed (e.g. local disk)
Hide presence of streaming
(architectural walkthrough, terrain flythrough)
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 of
user 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
Tree
Structure
13 bits
3 bits
Normal
Width of
Cone of
Normals
Color
(Optional)
14 bits
2 bits
16 bits
6 bytes
QSplat Rendering Algorithm
• Traverse hierarchy recursively
Hierarchical frustum /
backface culling
if (node not visible)
Skip this branch
Point rendering
else if (leaf node)
Level of detail
control
Draw a splat
else if (size on screen < threshold)
Draw a splat
else
Traverse children
Adjusted to maintain
desired frame rate
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:
1. Level within hierarchy
2. Size of node in world coordinates
3. Projected screen-space size
4. Projected y coordinate
5. 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
Download