A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz & Marc Levoy Stanford University Edited by Ingrid.

Slides:



Advertisements
Similar presentations
Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.
Advertisements


CSE 681 Bounding Volumes. CSE 681 Bounding Volumes Use simple volume enclose object(s) tradeoff for rays where there is extra intersection test for object.
Introduction to Massive Model Visualization Patrick Cozzi Analytical Graphics, Inc.
Two Methods for Fast Ray-Cast Ambient Occlusion Samuli Laine and Tero Karras NVIDIA Research.
Occlusion Culling Fall 2003 Ref: GamasutraGamasutra.
CHAPTER 12 Height Maps, Hidden Surface Removal, Clipping and Level of Detail Algorithms © 2008 Cengage Learning EMEA.
Computer Graphics Visible Surface Determination. Goal of Visible Surface Determination To draw only the surfaces (triangles) that are visible, given a.
CSE 381 – Advanced Game Programming Scene Management
Developer’s Survey of Polygonal Simplification Algorithms Based on David Luebke’s IEEE CG&A survey paper.
Visibility Culling. Back face culling View-frustrum culling Detail culling Occlusion culling.
Visibility Culling using Hierarchical Occlusion Maps Hansong Zhang, Dinesh Manocha, Tom Hudson, Kenneth E. Hoff III Presented by: Chris Wassenius.
Robust Repair of Polygonal Models Tao Ju Rice University.
Computing 3D Geometry Directly From Range Images Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
HCI 530 : Seminar (HCI) Damian Schofield.
CGDD 4003 THE MASSIVE FIELD OF COMPUTER GRAPHICS.
Tomas Mőller © 2000 Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers.
Marc Levoy 1 Szymon Rusinkiewicz 1 Matt Ginzton 1 Jeremy Ginsberg 1 Kari Pulli 1 David Koller 1 Sean Anderson 1 Jonathan Shade 2 Brian Curless 2 Lucas.
Advanced Computer Graphics (Fall 2010) CS 283, Lecture 4: 3D Objects and Meshes Ravi Ramamoorthi
Streaming QSplat: A Viewer for Networked Visualization of Large, Dense Models Szymon Rusinkiewicz Marc Levoy Stanford University.
A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz Marc Levoy Stanford University.
Hidden Surface Elimination Wen-Chieh (Steve) Lin Institute of Multimedia Engineering I-Chen Lin’ CG Slides, Rich Riesenfeld’s CG Slides, Shirley, Fundamentals.
Image-Based Techniques Hierarchical Image Caching Michael Chung.
Bounding Volume Hierarchies and Spatial Partitioning Kenneth E. Hoff III COMP-236 lecture Spring 2000.
Computer Science Department
Spectral Processing of Point-sampled Geometry
1 Advanced Scene Management System. 2 A tree-based or graph-based representation is good for 3D data management A tree-based or graph-based representation.
Abstract: Digital 3D models are used in industry during the design process. Our client, Siemens PLM, creates software to allow these businesses to view.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
Hidden Surface Removal
Modeling and representation 1 – comparative review and polygon mesh models 2.1 Introduction 2.2 Polygonal representation of three-dimensional objects 2.3.
Computer graphics & visualization Point-Based Computer Graphics.
Spatial Data Structures Jason Goffeney, 4/26/2006 from Real Time Rendering.
Dynamic Meshing Using Adaptively Sampled Distance Fields
Culling Techniques “To cull” means “to select from group” In graphics context: do not process data that will not contribute to the final image The “group”
Adaptive Real-Time Rendering of Planetary Terrains WSCG 2010 Raphaël Lerbour Jean-Eudes Marvie Pascal Gautron THOMSON R&D, Rennes, France.
NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen
Week 11 - Thursday.  What did we talk about last time?  Image processing  Blurring  Edge detection  Color correction  Tone mapping  Lens flare.
“QSplat : A Multiresolution Point Rendering System for Large Data Meshes” Authors: Szymon Rusinklewicz Marc Levoy Presentation: Nathaniel Fout.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
Real-Time Rendering SPEEDING UP RENDERING Lecture 04 Marina Gavrilova.
1 Advanced Scene Management. 2 This is a game-type-oriented issue Bounding Volume Hierarchies (BVHs) Binary space partition trees (BSP Trees) “Quake”
2 COEN Computer Graphics I Evening’s Goals n Discuss application bottleneck determination n Discuss various optimizations for making programs execute.
Real-time Graphics for VR Chapter 23. What is it about? In this part of the course we will look at how to render images given the constrains of VR: –we.
Adaptive Display Algorithmfor Interactive Frame Rates.
1 Visiblity: Culling and Clipping Computer Graphics COMP 770 (236) Spring 2009 January 21 & 26: 2009.
03/15/03© 2005 University of Wisconsin Where We’ve Been Photo-realistic rendering –Accurate modeling and rendering of light transport and surface reflectance.
04/23/03© 2003 University of Wisconsin Where We’ve Been Photo-realistic rendering –Accurate modeling and rendering of light transport and surface reflectance.
- Laboratoire d'InfoRmatique en Image et Systèmes d'information
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
PMR: Point to Mesh Rendering, A Feature-Based Approach Tamal K. Dey and James Hudson
Graphics Graphics Korea University cgvr.korea.ac.kr 1 7. Speed-up Techniques Presented by SooKyun Kim.
Graphics Interface 2009 The-Kiet Lu Kok-Lim Low Jianmin Zheng 1.
3D Object Representations 2011, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
Hierarchical Occlusion Map Zhang et al SIGGRAPH 98.
Graphics, Modeling, and Textures Computer Game Design and Development.
Efficient Ray Tracing of Compressed Point Clouds Erik Hubo Tom Mertens Tom Haber Philippe Bekaert Expertise Centre for Digital Media Hasselt University.
1 Advanced Scene Management. 2 This is a game-type-oriented issue Bounding Volume Hierarchies (BVHs) Binary space partition trees (BSP Trees) “Quake”
Solid Modeling Dr. Scott Schaefer.
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.

CSE 554 Lecture 5: Contouring (faster)
Bounding Volume Hierarchies and Spatial Partitioning
POLYGON MESH Advance Computer Graphics
Bounding Volume Hierarchies and Spatial Partitioning
3D Object Representations
CS475 3D Game Development Level Of Detail Nodes (LOD)
Graphics, Modeling, and Textures
Real-time Acquisition and Rendering of Large 3D Models
Presentation transcript:

A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz & Marc Levoy Stanford University Edited by Ingrid

Introduction Trend in computer graphics towards using sampled representations of real objects during renderingTrend in computer graphics towards using sampled representations of real objects during rendering Size of data meshes that can be scanned is on the order of hundreds of millions of pointsSize of data meshes that can be scanned is on the order of hundreds of millions of points Scanned data has a large number of verticies whose locations are often imprecise due to noiseScanned data has a large number of verticies whose locations are often imprecise due to noise

IntroductionIntroduction Evidenced by increased use of 3D scanners to produce three dimensional sampled models of objectsEvidenced by increased use of 3D scanners to produce three dimensional sampled models of objects This is FAR beyond what is currently displayable in real time This is FAR beyond what is currently displayable in real time Suggests an approach where individual points are relatively unimportant Suggests an approach where individual points are relatively unimportant

Introduction Examples of recent research employing this paradigmExamples of recent research employing this paradigm – Spline-fitting system by Krishnamurthy and Levoy – Range image merging system by Curless and Levoy – Octree particle rendering system by Yemez and Schmitt These algorithms do not preserve the original locations of the scanned pointsThese algorithms do not preserve the original locations of the scanned points

What is QSplat? System for representing and progressively displaying large scale meshes of scanned dataSystem for representing and progressively displaying large scale meshes of scanned data Combines a multi resolution hierarchy based on bounding spheres with a rendering system based on pointsCombines a multi resolution hierarchy based on bounding spheres with a rendering system based on points Does not preserve the connectivity of the original meshDoes not preserve the connectivity of the original mesh Intended to visualize scanned models that contain significant amounts of fine detail at scales near the scanning resolutionIntended to visualize scanned models that contain significant amounts of fine detail at scales near the scanning resolution

System Outline Preprocessing AlgorithmPreprocessing Algorithm – generates hierarchy from triangular mesh Data StructureData Structure – bounding spheres Node StructureNode Structure – sphere center, radius, normal, width of a normal cone, (optionally) a color Rendering AlgorithmRendering Algorithm – visibility culling & drawing a splat

if (begin == end) return Sphere(verticies[begin]) else midpoint = PartitionLongestAxis(verticies[begin..end]) leftstree = BuildTree(verticies[begin..midpoint]) rightstree = BuildTree(verticies[midpoint+1..end]) return BoundingSphere(leftsubtree, rightsubtree) Preprocessing Algorithm Bounding Box of vertices Recurse down each subtree, finding its bounding box

Preprocessing Algorithm Position and size of each bounding sphere is encoded relative to its parent and quantisized to 13 values to save spacePosition and size of each bounding sphere is encoded relative to its parent and quantisized to 13 values to save space Quantisized down the mesh, so errors do not propagateQuantisized down the mesh, so errors do not propagate Round up to ensure no holes introduced by quantizationRound up to ensure no holes introduced by quantization

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]

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

Creating the Data Structure Build up hierarchyBuild up hierarchy

QSplat Data Structure A single bounding sphere hierarchy used forA single bounding sphere hierarchy used for – Hierarchical frustum and backface culling – Level of detail control – Splat rendering [Westover 89]

QSplat Node Structure Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits3 bits14 bits2 bits16 bits 6 bytes

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

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

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]

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

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

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

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

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

QSplat Node Structure Per-vertex color is quantized (R-G-B) Position and Radius Tree Structure Normal Width of Cone of Normals Color (Optional) 13 bits3 bits14 bits2 bits16 bits

QSplat Rendering Algorithm 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

Rendering Algorithm Visibility CullingVisibility Culling – As recurse bounding spheres, cull nodes not visible – Backface culling if cone faces away, discard node & subtreeif cone faces away, discard node & subtree If cone faces viewer, mark node no cullingIf cone faces viewer, mark node no culling Frustum culling is performed by testing each sphere against planes of the view frustumFrustum culling is performed by testing each sphere against planes of the view frustum – discard nodes and subtrees that are outside the view frustum

Rendering Algorithm Determining when to recurseDetermining when to recurse – Based on projected size of screen – Node is subdivided if area of sphere when projected on viewing plane exceeds a threshold – Adjusted frame to frame to maintain user selected frame rate Type of data does not require smoothing or complex frame rate adjustmentType of data does not require smoothing or complex frame rate adjustment

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]

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

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

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

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

QSplat binaries and source codeQSplat binaries and source code Digital Michelangelo Project archive atDigital Michelangelo Project archive at QSplat Downloads