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

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

Dec 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

A MultiresolutionA MultiresolutionPoint Rendering Point Rendering

SystemSystemfor Large Meshesfor Large Meshes

Szymon RusinkiewiczSzymon RusinkiewiczMarc LevoyMarc Levoy

Stanford UniversityStanford University

Page 2: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford 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

Page 3: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 4: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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?

Page 5: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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]

Page 6: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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]

Page 7: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 8: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

Creating the Data Creating the Data StructureStructure

• Build up hierarchyBuild up hierarchy

Page 9: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 10: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 11: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 12: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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]

Page 13: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 14: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 15: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 16: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 17: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 18: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 19: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 20: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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]

Page 21: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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]

Page 22: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 23: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 24: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 25: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

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

Page 26: A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.

• 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