Date post: | 20-Dec-2015 |
Category: |
Documents |
View: | 222 times |
Download: | 2 times |
A MultiresolutionA MultiresolutionPoint Rendering Point Rendering
SystemSystemfor Large Meshesfor Large Meshes
Szymon RusinkiewiczSzymon RusinkiewiczMarc LevoyMarc Levoy
Stanford UniversityStanford University
GoalsGoals
• An interactive viewer for large An interactive viewer for large modelsmodels(10(1088 – 10 – 1099 samples) samples)
• Fast startup and progressive Fast startup and progressive loadingloading
• Maintains interactive frame rateMaintains interactive frame rate
• Compact data structureCompact data structure
• Fast preprocessingFast preprocessing
Previous Systems forPrevious Systems forRendering Large ModelsRendering Large Models
• Level of detail control in architectural Level of detail control in architectural walkthrough, terrain rendering walkthrough, terrain rendering systems [Funkhouser 93, Duchaineau systems [Funkhouser 93, Duchaineau 97]97]
• Progressive meshes [Hoppe 96, Progressive meshes [Hoppe 96, Hoppe 97]Hoppe 97]
• These systems often have expensive These systems often have expensive data structures or high preprocessing data structures or high preprocessing costscosts
OutlineOutline
• Data structure:Data structure: bounding sphere bounding sphere hierarchyhierarchy
• Rendering algorithm:Rendering algorithm: traverse tree traverse tree and splatand splat
• Point rendering:Point rendering: when is it when is it appropriate?appropriate?
QSplat Data StructureQSplat Data Structure
• Key observation: a single Key observation: a single bounding sphere hierarchy can be bounding sphere hierarchy can be used forused for– Hierarchical frustum and backface Hierarchical frustum and backface
cullingculling– Level of detail controlLevel of detail control– Splat rendering [Westover 89]Splat rendering [Westover 89]
Creating the Data Creating the Data StructureStructure
• Start with a triangle mesh Start with a triangle mesh produced by aligning and produced by aligning and integrating scans [Curless 96]integrating scans [Curless 96]
Creating the Data Creating the Data StructureStructure
• Place a sphere at each node, large Place a sphere at each node, large enough to touch neighbor spheresenough to touch neighbor spheres
QSplat Node StructureQSplat Node Structure
Positionand
Radius
TreeStructure Normal
Width ofCone ofNormals
Color(Optional)
13 bits 3 bits 14 bits 2 bits 16 bits
6 bytes
QSplat Node StructureQSplat Node Structure
• Position and radius Position and radius encoded relative to parent encoded relative to parent nodenode– Hierarchical coding vs. delta Hierarchical coding vs. delta
coding along a path for coding along a path for vertex positionsvertex positions
Positionand
Radius
TreeStructure Normal
Width ofCone ofNormals
Color(Optional)
13 bits 3 bits 14 bits 2 bits 16 bits
Center OffsetCenter Offset
Radius RatioRadius Ratio
QSplat Node StructureQSplat Node Structure
Positionand
Radius
TreeStructure Normal
Width ofCone ofNormals
Color(Optional)
13 bits 3 bits 14 bits 2 bits 16 bits
UncompressedUncompressed
QSplat Node StructureQSplat Node Structure
Positionand
Radius
TreeStructure Normal
Width ofCone ofNormals
Color(Optional)
13 bits 3 bits 14 bits 2 bits 16 bits
Delta CodingDelta Coding[Deering 96][Deering 96]
QSplat Node StructureQSplat Node Structure
Positionand
Radius
TreeStructure Normal
Width ofCone ofNormals
Color(Optional)
13 bits 3 bits 14 bits 2 bits 16 bits
HierarchicalHierarchicalCodingCoding
QSplat Node StructureQSplat Node Structure
• Number of children (0, 2, 3, or 4) – 2 Number of children (0, 2, 3, or 4) – 2 bitsbits
• Presence of grandchildren – 1 bitPresence of grandchildren – 1 bit
Positionand
Radius
TreeStructure Normal
Width ofCone ofNormals
Color(Optional)
13 bits 3 bits 14 bits 2 bits 16 bits
QSplat Node StructureQSplat Node Structure
• Normal quantized to gridNormal quantized to gridon faces of a cubeon faces of a cube
Positionand
Radius
TreeStructure Normal
Width ofCone ofNormals
Color(Optional)
13 bits 3 bits 14 bits 2 bits 16 bits
5252525266
QSplat Node StructureQSplat Node Structure
• Each node contains bounding cone ofEach node contains bounding cone ofchildren’s normalschildren’s normals
• Hierarchical backface culling [Kumar Hierarchical backface culling [Kumar 96]96]
Positionand
Radius
TreeStructure Normal
Width ofCone ofNormals
Color(Optional)
13 bits 3 bits 14 bits 2 bits 16 bits
QSplat Node StructureQSplat Node Structure
Positionand
Radius
TreeStructure Normal
Width ofCone ofNormals
Color(Optional)
13 bits 3 bits 14 bits 2 bits 16 bits
CulledCulled Not CulledNot Culled
Viewer
QSplat Node StructureQSplat Node Structure
• Per-vertex color is quantized 5-6-5 (R-Per-vertex color is quantized 5-6-5 (R-G-B)G-B)
Positionand
Radius
TreeStructure Normal
Width ofCone ofNormals
Color(Optional)
13 bits 3 bits 14 bits 2 bits 16 bits
QSplat Rendering QSplat Rendering AlgorithmAlgorithm
• Traverse hierarchy recursivelyTraverse hierarchy recursively
if if (node not visible)(node not visible)Skip this branchSkip this branch
else ifelse if (leaf node) (leaf node)Draw a splatDraw a splat
else ifelse if (size on screen < (size on screen < threshold)threshold)
Draw a splatDraw a splat
elseelseTraverse childrenTraverse children
if if (node not visible)(node not visible)Skip this branchSkip this branch
else ifelse if (leaf node) (leaf node)Draw a splatDraw a splat
else ifelse if (size on screen < (size on screen < threshold)threshold)
Draw a splatDraw a splat
elseelseTraverse childrenTraverse children
Hierarchical frustum /Hierarchical frustum /backface cullingbackface culling
Point renderingPoint rendering
Adjusted to maintainAdjusted to maintaindesired frame ratedesired frame rate
Level of detailLevel of detailcontrolcontrol
Frame Rate ControlFrame Rate Control
• Feedback-driven frame rate controlFeedback-driven frame rate control– During motion: adjust recursion During motion: adjust recursion
threshold based on time to render threshold based on time to render previous frameprevious frame
– On mouse up: redraw with On mouse up: redraw with progressively smaller thresholdsprogressively smaller thresholds
– Consequence: frame rate may varyConsequence: frame rate may vary
• Alternative:Alternative:– Predictive control of detail [Funkhouser Predictive control of detail [Funkhouser
93]93]
Loading Model from DiskLoading Model from Disk
• Tree layout:Tree layout:– Breadth-first order in memory and on diskBreadth-first order in memory and on disk
• Working set management:Working set management:– Memory mapping disk fileMemory mapping disk file– Consequence: lower detail for new Consequence: lower detail for new
geometrygeometry– Alternative: Active working set Alternative: Active working set
managementmanagementwith prefetching [Funkhouser 96, Aliaga with prefetching [Funkhouser 96, Aliaga 99]99]
PolygonsPolygons QSplatQSplat
Tradeoffs of SplattingTradeoffs 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 orsubtly curved regions
Good for models withdetail everywhere
Highly-efficient rasterizationwith 3D graphics hardware
Higher per-pixel cost, butless slowdown in
absence of 3D hardware
Decimation or creatingLOD data structures
is often expensiveFast preprocessing
Demo – St. MatthewDemo – St. Matthew
• 3D scan of 2.7 meter 3D scan of 2.7 meter statue at 0.25 mmstatue at 0.25 mm
• 102,868,637 points102,868,637 points
• File size: 644 MBFile size: 644 MB
• Preprocessing time: Preprocessing time: 1 hour1 hour• Demo on laptop (PII Demo on laptop (PII 366, 128 MB), no 366, 128 MB), no 3D graphics 3D graphics hardwarehardware
Future WorkFuture Work
• Splats as primitiveSplats as primitive– Unify rendering of meshes, volumes, point Unify rendering of meshes, volumes, point
cloudsclouds– Compatible with shading after rasterizationCompatible with shading after rasterization– Hybrid point/polygon systemsHybrid point/polygon systems
• High-level visibility / LOD frameworksHigh-level visibility / LOD frameworks– Store different kinds of data at each node: Store different kinds of data at each node:
alpha, BRDF, scattering function, etc. alpha, BRDF, scattering function, etc. – Potentially could be used to unify image-Potentially could be used to unify image-
based-rendering (IBR) techniquesbased-rendering (IBR) techniques
AcknowledgmentsAcknowledgments
• Thanks to Gary King, Dave Koller, Thanks to Gary King, Dave Koller, Jonathan Shade, Matt Ginzton, Kari Jonathan Shade, Matt Ginzton, Kari Pulli, Lucas Pereira, James Davis, and Pulli, Lucas Pereira, James Davis, and the whole DMich gangthe whole DMich gang
• Digital Michelangelo Project sponsored Digital Michelangelo Project sponsored by Stanford University, Interval by Stanford University, Interval Research Corporation, and the Paul Research Corporation, and the Paul Allen Foundation for the ArtsAllen Foundation for the Arts
• QSplat binaries and source codeQSplat binaries and source code
• Digital Michelangelo Project archive atDigital Michelangelo Project archive at
QSplat DownloadsQSplat Downloads
http://graphics.stanford.edu/software/qsplathttp://graphics.stanford.edu/software/qsplat
http://graphics.stanford.edu/projects/michhttp://graphics.stanford.edu/projects/mich