“QSplat : A Multiresolution Point Rendering System for Large Data Meshes” Authors: Szymon Rusinklewicz Marc Levoy Presentation: Nathaniel Fout.

Slides:



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

CS 352: Computer Graphics Chapter 7: The Rendering Pipeline.
Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
Graphics Pipeline.
Direct Volume Rendering. What is volume rendering? Accumulate information along 1 dimension line through volume.
Introduction to Massive Model Visualization Patrick Cozzi Analytical Graphics, Inc.
Computer Graphics Visible Surface Determination. Goal of Visible Surface Determination To draw only the surfaces (triangles) that are visible, given a.
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.
CS447/ Realistic Rendering -- Solids Modeling -- Introduction to 2D and 3D Computer Graphics.
Chapter 6: Vertices to Fragments Part 2 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley Mohan Sridharan Based on Slides.
Tomas Mőller © 2000 Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers.
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.
Kumar, Roger Sepiashvili, David Xie, Dan Professor Chen April 19, 1999 Progressive 3D Mesh Coding.
Visualization and graphics research group CIPIC January 21, 2003Multiresolution (ECS 289L) - Winter Dynamic View-Dependent Simplification for Polygonal.
Vertices and Fragments III Mohan Sridharan Based on slides created by Edward Angel 1 CS4395: Computer Graphics.
10/11/2001CS 638, Fall 2001 Today Kd-trees BSP Trees.
Introduction to 3D Graphics John E. Laird. Basic Issues u Given a internal model of a 3D world, with textures and light sources how do you project it.
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.
CSS552 Final Project Demo Peter Lam Tim Chuang. Problem Statement Our goal is to experiment with different post rendering effects (Cel Shading, Bloom.
Hidden Surface Removal
Shadows Computer Graphics. Shadows Shadows Extended light sources produce penumbras In real-time, we only use point light sources –Extended light sources.
Erdem Alpay Ala Nawaiseh. Why Shadows? Real world has shadows More control of the game’s feel  dramatic effects  spooky effects Without shadows the.
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
Polygon Shading. Assigning color to a shape to make graphical scenes look realistic, or artistic, or whatever effect we’re attempting to achieve But first.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
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.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
CS447/ Realistic Rendering -- Radiosity Methods-- Introduction to 2D and 3D Computer Graphics.
Real-Time Rendering SPEEDING UP RENDERING Lecture 04 Marina Gavrilova.
Hidden Surface Removal 1.  Suppose that we have the polyhedron which has 3 totally visible surfaces, 4 totally invisible/hidden surfaces, and 1 partially.
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.
Advanced HSR Methods Glenn G. Chappell U. of Alaska Fairbanks CS 481/681 Lecture Notes Friday, January 30, 2004.
Interactive Rendering With Coherent Ray Tracing Eurogaphics 2001 Wald, Slusallek, Benthin, Wagner Comp 238, UNC-CH, September 10, 2001 Joshua Stough.
1 Compressing Triangle Meshes Leila De Floriani, Paola Magillo University of Genova Genova (Italy) Enrico Puppo National Research Council Genova (Italy)
1Computer Graphics Implementation II Lecture 16 John Shearer Culture Lab – space 2
Implementation II Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
Implementation II.
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
CSCE 552 Spring D Models By Jijun Tang. Triangles Fundamental primitive of pipelines  Everything else constructed from them  (except lines and.
PMR: Point to Mesh Rendering, A Feature-Based Approach Tamal K. Dey and James Hudson
Coherent Hierarchical Culling: Hardware Occlusion Queries Made Useful Jiri Bittner 1, Michael Wimmer 1, Harald Piringer 2, Werner Purgathofer 1 1 Vienna.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 7. Speed-up Techniques Presented by SooKyun Kim.
3/16/04James R. McGirr1 Interactive Rendering of Large Volume Data Sets Written By : Stefan Guthe Michael Wand Julius Gonser Wolfgang Straβer University.
Computer Graphics I, Fall 2010 Implementation II.
A Multiresolution Point Rendering System for Large Meshes Szymon Rusinkiewicz & Marc Levoy Stanford University Edited by Ingrid.
Real-Time Dynamic Shadow Algorithms Evan Closson CSE 528.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
Hierarchical Occlusion Map Zhang et al SIGGRAPH 98.
Computer Graphics Inf4/MSc 1 Computer Graphics Lecture 5 Hidden Surface Removal and Rasterization Taku Komura.
Efficient Ray Tracing of Compressed Point Clouds Erik Hubo Tom Mertens Tom Haber Philippe Bekaert Expertise Centre for Digital Media Hasselt University.
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
APE'07 IV INTERNATIONAL CONFERENCE ON ADVANCES IN PRODUCTION ENGINEERING June 2007 Warsaw, Poland M. Nowakiewicz, J. Porter-Sobieraj Faculty of.
Processing Images and Video for An Impressionist Effect Automatic production of “painterly” animations from video clips. Extending existing algorithms.
Computer Graphics CC416 Lecture 04: Bresenham Line Algorithm & Mid-point circle algorithm Dr. Manal Helal – Fall 2014.
Computer Graphics Implementation II
POLYGON MESH Advance Computer Graphics
3D Object Representations
CSCE 441: Computer Graphics Hidden Surface Removal
Implementation II Ed Angel Professor Emeritus of Computer Science
Introduction to Computer Graphics with WebGL
Chap 10. Geometric Level of Detail
Implementation II Ed Angel Professor Emeritus of Computer Science
Presentation transcript:

“QSplat : A Multiresolution Point Rendering System for Large Data Meshes” Authors: Szymon Rusinklewicz Marc Levoy Presentation: Nathaniel Fout

Motivation A quick review… - Rendering time is a very strong function of scene complexity - Which class of rendering algorithms is this not true for ? - Does this pose a problem for rendering the Stanford Bunny in real time? What about 100 Bunnies? What about 1000 Bunnies? ( ~ 4.5 billion tri/sec) - Current graphics hardware: nVidia Quadro at 17 million tri/sec

Motivation Who would want to render 1000 Bunnies in real time ? Practical Applications : - rendering complex terrain (games, simulators) - rendering sampled models of physical objects Advances in scanning technology have enabled the creation of very large meshes with hundreds of millions of polygons Conventional rendering will not work. Why not? Obviously insufficient triangle throughput, but what about storage? 1,000,000 triangles  36 MB 100,000,000 triangles  3600 MB etc…

Rendering Large Data Sets Methodologies for dealing with this problem 1) Visibility Culling – includes frustum culling, back- face culling, occlusion culling 2) LOD Control – discrete or fine-grained control 3) Geometric Compression – saves on storage costs, but must be decoded to render 4) Point Rendering – use a simpler primitive, the point, instead of triangles Many algorithms use some of these techniques; QSplat uses all of them

What is QSplat ? QSplat is a point-based rendering system that uses the visibility culling, LOD control, and geometric compression to render very large triangular meshes. The core of the renderer is a hierarchical data structure consisting of bounding spheres.

General Description Basic Idea – instead of rendering all those polygons, let’s approximate the mesh with points along the surface We can then splat these points on the image plane; z-buffer takes care of visibility as usual Point samples are organized in a hierarchical fashion using bounding spheres – this facilitates easy visibility culling, LOD control, and rendering Hierarchy construction is a preprocessing step – it is done once only and saved to a disk

Rendering The rendering algorithm: TraverseHierarchy(node) { if (node not visible) skip this branch of the tree else if (node is a leaf node) draw a splat else if (benefit of recursing further is low) draw a splat else for each child in children(node) TraverseHierarchy(child) }  Visibility Culling  LOD Control

Rendering: Visibility Culling Frustum culling is performed by testing the bounding sphere against all six planes of the viewing frustum Each node stores a normal cone which is a collective representation of the normals of the subtree for that node – this cone is used for back face culling Occlusion culling is not used N

Rendering: LOD Control LOD control is accomplished by adjusting the depth of recursion when traversing the tree There are two factors which control the depth of recursion: - projected screen space area of the bounding sphere - user selected frame rate If the projected area of the sphere exceeds a threshold value then we descend to the next level A feedback adjustment takes place to keep the frame rate at a user specified value; this adjustment is based simply on the ratio of actual to desired frame rate Progressive refinement is initiated once the user stops moving – the area threshold is successively reduced until it is the size of a pixel

LOD Control Threshold: 15 pixels Points: 130,712 Rendering Time: 132 ms Threshold: 1 pixel Points: 14,835,967 Rendering Time: 8308 ms Michelangelo’s statue of St. Matthew

Preprocessing Building the Hierarchy tree… What do the nodes look like? Leaf nodes correspond to vertices Interior nodes will have at most 4 children

Preprocessing Building the hierarchy tree… - we begin with a list of vertices - next we find a bounding box which contains the vertices - find the midpoint vertex along the longest axis of the bounding box - split the set of vertices into two parts - this creates the two children of the current node - the current node corresponds to the bounding sphere of the two child nodes - continue recursively… left child right child current node

Preprocessing Preprocessing Issues: - to ensure that there are no holes in the rendering we set the leaf node spheres to be a certain size If two vertices are joined by an edge, then the spheres for those vertices are made large enough to touch each other. Also, the size of a sphere at a vertex is set to the size of the maximum sphere of the vertices which make up that triangle - to decrease the size of the tree, nodes are combined to increase the average branching factor to ~4 - after the tree is created the properties of the nodes are calculated

Design Overview

Design Details tree node layout: position and radius Position and radius of sphere encoded as offsets relative to parent and quantized to 13 values Not all of 13 4 values are valid – in fact, only 7621 are valid Incremental encoding of geometry essentially spreads out the bits of information among the levels of the hierarchy Note that connectivity information is discarded Encoding saves space but increases rendering time due to the necessity of decoding on-the-fly Quantization saves space but pays for it by sacrificing accuracy

Design Details tree node layout: tree structure Information as to the structure of the tree is necessary for traversal since the number of children may vary Normally a pointer is kept for each child; however, if we store the tree in breadth-first order then we only need one pointer for each group of siblings This one pointer (along with the tree structure bits) is enough for traversal The first two bits represent the number of children: 0, 2, 3, or 4 The last bit indicates whether or not all children are leaf nodes

Design Details tree node layout: normal Normals are quantized to 14 bits These bits hold an encoded direction: a virtual cube with each face sub-divided into a 52 x 52 grid represents the possible values Grid positions are warped to sample normal space more uniformly Unlike the range of positions, normal space is bounded – this makes it efficient to use a single look-up table for rendering Incremental encoding is more expensive to decode and is not used for normals Banding artifacts can be seen in specular highlights

Design Details tree node layout: width of normal cone Width of normal cone is quantized to four values: cones whose half-angles have sines of 1/16, 4/16, 9/16, or 16/16 On typical data sets, back face culling with these quantized cone values discards over 90% of nodes which would be discarded were exact normal cone widths to be used Again, incremental encoding could be used, but with a penalty in rendering time

Design Details tree node layout: color Colors stored using 16 bits (RGB as 5-6-5)

Design Details file layout - as a consequence of storing the tree in breadth-first order, the information necessary to render at low resolution is located in the first part of the file - therefore only a working set needs to be loaded into memory; wait to load in a tree level until it is needed - this progressive loading may slow frame rates temporarily when zooming in for the first time, but greatly increases initial load time - speculative prefetching could help to amend this problem

Design Details: Splatting Splat Shape: - OpenGL point (rendered as a square) - opaque circle - fuzzy spot which decays radially as Gaussian using alpha blending In order to render points as fuzzy spots we need to make sure splats are drawn in the correct order. We can accomplish this with multi-pass rendering: 1. Offset depth values by some amount z 0 2. Render only into the depth buffer 3. Unset depth offset and render additively into the color buffer using depth comparison but not depth update

Design Details: Splatting Comparison of splats with a constant size: Gaussian kernel exhibits less aliasing Relative rendering times for square, circle, and Gaussian are 1, 2, and 4 respectively Constant threshold of 20 pixels

Design Details: Splatting Based on this comparison it is better to use Gaussian kernels, right? Not all splats are rendered in the same amount of time What if we allow the threshold to fluctuate, but constrain the rendering times to be the same Sample Rate vs. Reconstruction Quality

Design Details: Splatting Based on rendering time the square is the best splat shape to use Note that results will be hardware dependent Comparison of splats with constant rendering time:

Design Details: Splatting Another consideration is whether the splats are always round or if they can be elliptical (perspectively correct) Can use the node normal to determine eccentricity of ellipse Using elliptical splats reduce noise and enhance the smoothness of silhouettes Using ellipses can cause holes to occur

Design Details: Splatting A visual comparison of circles vs. ellipses:

Performance Typical preprocessing times:

Performance Preprocessing timing comparisons: - Hoppe reports 10 hours for 200,000 vertices - Luebke and Erikson report 121 seconds for 281,000 vertices - QSplat can process 200,000 vertices in under 5 seconds - Comparisons with mesh simplification for a bunny with 35,000 vertices: * Lindstrom and Turk report 30 s to 45 min * Rossignac and Borrel report less than 1 s * QSplat takes 0.6 s

Performance Rendering Performance:

Performance Rendering Performance: - QSplat can render between 1.5 and 2.5 million points per second - Hoppe reports 480,000 polygons per second with progressive meshes - ROAM system (a terrain rendering system) reports 180,000 polygons per second - QSplat can render 250 – 400 thousand points per second on a laptop with no 3D graphics hardware

Performance Rendering Performance: - Comparison with polygon rendering… a) Points b) Polygons – same number of primitives and same rendering time as a) c) Polygons – same number of vertices as a) but twice the rendering time

Conclusions QSplat accomplishes its goal of interactive rendering of very large data sets QSplat’s performance both in preprocessing and rendering is competitive with the fastest progressive display algorithms and mesh simplification algorithms Geometric compression achieved by QSplat is close to that of current geometric compression techniques QSplat can be implemented independent of 3D graphics hardware

Future Work… Huffman coding could be used to achieve even greater compression, but would require further decompression prior to rendering For cases when rendering speed is more important and storage is not a problem, the incremental encoding could be removed The rendering algorithm could be parallelized by distributing different parts of the tree to different processors Exploration into using the data structure for ray tracing acceleration Exploration into instancing for for scenes Exploration into storing additional items in the nodes such as transparency, etc.

Some final pictures… QSplat on display at a museum in Florence – some kids kept crashing the program by zooming in too close.