Download presentation
Presentation is loading. Please wait.
1
A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University
2
Goals Start QSplat Start QSplat
3
Sample Renderings of a 127-million-sample Model Interactive (8 frames/sec) High quality (8 sec)
4
Goals An interactive viewer for large models (10 8 – 10 9 samples)An interactive viewer for large models (10 8 – 10 9 samples) Fast startup and progressive loadingFast startup and progressive loading Maintains interactive frame rateMaintains interactive frame rate Compact data structureCompact data structure Fast preprocessingFast preprocessing
5
Previous Systems for Rendering Large Models Level of detail control in architectural walkthrough, terrain rendering systems [Funkhouser 93, Duchaineau 97]Level of detail control in architectural walkthrough, terrain rendering systems [Funkhouser 93, Duchaineau 97] Progressive meshes [Hoppe 96, Hoppe 97]Progressive meshes [Hoppe 96, Hoppe 97] These systems often have expensive data structures or high preprocessing costsThese systems often have expensive data structures or high preprocessing costs
6
Outline Data structure: bounding sphere hierarchyData structure: bounding sphere hierarchy Rendering algorithm: traverse tree and splatRendering algorithm: traverse tree and splat Point rendering: when is it appropriate?Point rendering: when is it appropriate?
7
QSplat Data Structure Key observation: a single bounding sphere hierarchy can be used forKey observation: a single bounding sphere hierarchy can be used for – Hierarchical frustum and backface culling – Level of detail control – Splat rendering [Westover 89]
8
Creating the Data Structure Start with a triangle mesh produced by aligning and integrating scans [Curless 96]Start with a triangle mesh produced by aligning and integrating scans [Curless 96]
9
Creating the Data Structure Place a sphere at each node, large enough to touch neighbor spheresPlace a sphere at each node, large enough to touch neighbor spheres
10
Creating the Data Structure Build up hierarchyBuild up hierarchy
11
QSplat Node Structure Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits3 bits14 bits2 bits16 bits 6 bytes
12
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 bits3 bits14 bits 2 bits 16 bits Center Offset Radius Ratio
13
QSplat Node Structure Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits3 bits14 bits 2 bits 16 bitsUncompressed
14
QSplat Node Structure Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits3 bits14 bits 2 bits 16 bits Delta Coding [Deering 96]
15
QSplat Node Structure Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits3 bits14 bits 2 bits 16 bits Hierarchical Coding
16
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 bits3 bits14 bits2 bits16 bits
17
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 bits3 bits14 bits2 bits16 bits 52 52 6
18
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 bits3 bits14 bits2 bits16 bits
19
QSplat Node Structure Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits3 bits14 bits2 bits16 bits Culled Not Culled Viewer
20
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 bits3 bits14 bits2 bits16 bits
21
QSplat Rendering Algorithm Traverse hierarchy recursivelyTraverse 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 Hierarchical frustum / backface culling Point rendering Adjusted to maintain desired frame rate Level of detail control
22
Frame Rate Control Feedback-driven frame rate controlFeedback-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:Alternative: – Predictive control of detail [Funkhouser 93]
23
Loading Model from Disk Tree layout:Tree layout: – Breadth-first order in memory and on disk Working set management:Working set management: – Memory mapping disk file – Consequence: lower detail for new geometry – Alternative: Active working set management with prefetching [Funkhouser 96, Aliaga 99]
24
PolygonsQSplat Tradeoffs of Splatting For rendering large 3D models, what are the tradeoffs of:For rendering large 3D models, what are the tradeoffs of: Good for large, flat or subtly curved regions Good for models with detail everywhere Highly-efficient rasterization with 3D graphics hardware Higher per-pixel cost, but less slowdown in absence of 3D hardware Decimation or creating LOD data structures is often expensive Fast preprocessing
25
Demo – St. Matthew 3D scan of 2.7 meter statue at 0.25 mm3D scan of 2.7 meter statue at 0.25 mm 102,868,637 points102,868,637 points File size: 644 MBFile size: 644 MB Preprocessing time: 1 hourPreprocessing time: 1 hour Demo on laptop (PII 366, 128 MB), no 3D graphics hardwareDemo on laptop (PII 366, 128 MB), no 3D graphics hardware
26
Demo – St. Matthew 3D scan of 2.7 meter statue at 0.25 mm3D scan of 2.7 meter statue at 0.25 mm 102,868,637 points102,868,637 points File size: 644 MBFile size: 644 MB Preprocessing time: 1 hourPreprocessing time: 1 hour Start QSplat Start QSplat
27
Future Work Splats as primitiveSplats as primitive – Unify rendering of meshes, volumes, point clouds – Compatible with shading after rasterization – Hybrid point/polygon systems High-level visibility / LOD frameworksHigh-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
28
Acknowledgments Thanks to Gary King, Dave Koller, Jonathan Shade, Matt Ginzton, Kari Pulli, Lucas Pereira, James Davis, and the whole DMich gangThanks 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 ArtsDigital Michelangelo Project sponsored by Stanford University, Interval Research Corporation, and the Paul Allen Foundation for the Arts
29
QSplat binaries and source codeQSplat binaries and source code Digital Michelangelo Project archive atDigital Michelangelo Project archive at QSplat Downloads http://graphics.stanford.edu/software/qsplat http://graphics.stanford.edu/projects/mich
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.