QS plat sg2k

Uploaded from authorPOINT
Views:
 
Category: Education
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

A MultiresolutionPoint Rendering Systemfor Large Meshes: 

A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University

Goals: 

Goals Start QSplat

Sample Renderings of a127-million-sample Model: 

Sample Renderings of a 127-million-sample Model Interactive (8 frames/sec) High quality (8 sec)

Goals: 

Goals An interactive viewer for large models (108 – 109 samples) Fast startup and progressive loading Maintains interactive frame rate Compact data structure Fast preprocessing

Previous Systems forRendering Large Models: 

Previous Systems for Rendering Large Models Level of detail control in architectural walkthrough, terrain rendering systems [Funkhouser 93, Duchaineau 97] Progressive meshes [Hoppe 96, Hoppe 97] These systems often have expensive data structures or high preprocessing costs

Outline: 

Outline Data structure: bounding sphere hierarchy Rendering algorithm: traverse tree and splat Point rendering: when is it appropriate?

QSplat Data Structure: 

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 [Westover 89]

Creating the Data Structure: 

Creating the Data Structure Start with a triangle mesh produced by aligning and integrating scans [Curless 96]

Creating the Data Structure: 

Creating the Data Structure Place a sphere at each node, large enough to touch neighbor spheres

Creating the Data Structure: 

Creating the Data Structure Build up hierarchy

QSplat Node Structure: 

QSplat Node Structure Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits 3 bits 14 bits 2 bits 16 bits 6 bytes

QSplat Node Structure: 

QSplat Node Structure Position and radius encoded relative to parent node Hierarchical coding vs. delta coding along a path for vertex positions Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits 3 bits 14 bits 2 bits 16 bits

QSplat Node Structure: 

QSplat Node Structure Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits 3 bits 14 bits 2 bits 16 bits

QSplat Node Structure: 

QSplat Node Structure Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits 3 bits 14 bits 2 bits 16 bits

QSplat Node Structure: 

QSplat Node Structure Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits 3 bits 14 bits 2 bits 16 bits

QSplat Node Structure: 

QSplat Node Structure Number of children (0, 2, 3, or 4) – 2 bits Presence of grandchildren – 1 bit Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits 3 bits 14 bits 2 bits 16 bits

QSplat Node Structure: 

QSplat Node Structure Normal quantized to grid on faces of a cube Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits 3 bits 14 bits 2 bits 16 bits 52526

QSplat Node Structure: 

QSplat Node Structure Each node contains bounding cone of children’s normals Hierarchical backface culling [Kumar 96] Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits 3 bits 14 bits 2 bits 16 bits

QSplat Node Structure: 

QSplat Node Structure Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits 3 bits 14 bits 2 bits 16 bits Culled Not Culled Viewer

QSplat Node Structure: 

QSplat Node Structure Per-vertex color is quantized 5-6-5 (R-G-B) Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits 3 bits 14 bits 2 bits 16 bits

QSplat Rendering Algorithm: 

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 andlt; threshold) Draw a splat else Traverse children

Frame Rate Control: 

Frame Rate Control Feedback-driven frame rate control During motion: adjust recursion threshold based on time to render previous frame On mouse up: redraw with progressively smaller thresholds Consequence: frame rate may vary Alternative: Predictive control of detail [Funkhouser 93]

Loading Model from Disk: 

Loading Model from Disk Tree layout: Breadth-first order in memory and on disk Working set management: Memory mapping disk file Consequence: lower detail for new geometry Alternative: Active working set management with prefetching [Funkhouser 96, Aliaga 99]

Tradeoffs of Splatting: 

Tradeoffs of Splatting For rendering large 3D models, what are the tradeoffs of:

Demo – St. Matthew: 

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 Demo on laptop (PII 366, 128 MB), no 3D graphics hardware

Demo – St. Matthew: 

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 Start QSplat

Future Work: 

Future Work Splats as primitive Unify rendering of meshes, volumes, point clouds Compatible with shading after rasterization Hybrid point/polygon systems High-level visibility / LOD frameworks Store different kinds of data at each node: alpha, BRDF, scattering function, etc. Potentially could be used to unify image-based-rendering (IBR) techniques

Acknowledgments: 

Acknowledgments Thanks to Gary King, Dave Koller, Jonathan Shade, Matt Ginzton, Kari Pulli, Lucas Pereira, James Davis, and the whole DMich gang Digital Michelangelo Project sponsored by Stanford University, Interval Research Corporation, and the Paul Allen Foundation for the Arts

QSplat Downloads: 

QSplat binaries and source code Digital Michelangelo Project archive at QSplat Downloads http://graphics.stanford.edu/software/qsplat http://graphics.stanford.edu/projects/mich