View-Dependent Simplification of Arbitrary Polygonal Environments David Luebke.

Slides:



Advertisements
Similar presentations
 Over-all: Very good idea to use more than one source. Good motivation (use of graphics). Good use of simplified, loosely defined -- but intuitive --
Advertisements

Surface Simplification using Quadric Error Metrics Guowei Wu.
Surface Simplification Using Quadric Error Metrics Speaker: Fengwei Zhang September
CAP4730: Computational Structures in Computer Graphics Visible Surface Determination.
HLODs: Hierarchical Levels of Detail Hierarchical Simplifications for Faster Display of Massive Geometric Environments Carl Erikson, Dinesh Manochahttp://
Developer’s Survey of Polygonal Simplification Algorithms Based on David Luebke’s IEEE CG&A survey paper.
Visibility Culling using Hierarchical Occlusion Maps Hansong Zhang, Dinesh Manocha, Tom Hudson, Kenneth E. Hoff III Presented by: Chris Wassenius.
Mesh Simplification. Plan Introduction Mesh Simplifications Current Techniques The Projet Results.
Terrain rendering in games
UVA / UNC / JHU Perceptually Guided Simplification of Lit, Textured Meshes Nathaniel WilliamsUNC David LuebkeUVA Jonathan D. CohenJHU Michael KelleyUVA.
4.4. L EVEL OF D ETAIL Exploration of 3D mesh level-of-detail approaches.
Smooth view-dependent LOD control and its application to terrain rendering Hugues Hoppe Microsoft Research IEEE Visualization 1998.
High-Quality Simplification with Generalized Pair Contractions Pavel Borodin,* Stefan Gumhold, # Michael Guthe,* Reinhard Klein* *University of Bonn, Germany.
CS CS 175 – Week 4 Mesh Decimation General Framework, Progressive Meshes.
Haptic Rendering using Simplification Comp259 Sung-Eui Yoon.
View-Dependent Refinement of Progressive Meshes Hugues Hoppe Microsoft Research SIGGRAPH 97.
Mesh Simplification Global and Local Methods:
Smooth View-Dependent Level-of- Detail Control and its Application to Terrain Rendering Hugues Hoppe Microsoft Research.
Lapped Textures SIGGRAPH 2000 Emil Praun Adam Finkelstein Hugues Hoppe.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Quick-VDR: Interactive View-Dependent Rendering of Massive Models Sung-Eui Yoon Brian Salomon Russell Gayle.
Visualization and graphics research group CIPIC January 21, 2003Multiresolution (ECS 289L) - Winter Dynamic View-Dependent Simplification for Polygonal.
3D Model Simplification (GATE-540)
Visualization and graphics research group CIPIC January 21, 2003Multiresolution (ECS 289L) - Winter Surface Simplification Using Quadric Error Metrics.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 10: Mesh simplification Ravi Ramamoorthi Many slides courtesy.
10/14/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Level of Detail.
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
A D V A N C E D C O M P U T E R G R A P H I C S CMSC 635 January 15, 2013 Quadric Error Metrics 1/20 Quadric Error Metrics.
Level of Detail David Luebke University of Virginia.
Dynamic Meshing Using Adaptively Sampled Distance Fields
Presented By Greg Gire Advised By Zoë Wood California Polytechnic State University.
Computer Graphics Research at Virginia David Luebke Department of Computer Science.
Level of Detail & Visibility: A Brief Overview David Luebke University of Virginia.
10/02/2001CS 638, Fall 2001 Today Level of Detail Overview Decimation Algorithms LOD Switching.
DPL10/16/2015 CS 551/651: Simplification Continued David Luebke
Real-Time Rendering SPEEDING UP RENDERING Lecture 04 Marina Gavrilova.
Level of Detail: Choosing and Generating LODs David Luebke University of Virginia.
Triangular Mesh Decimation
Levels of Detail COMP 770 3/25/09. Problem Models can be very detailed Look great when close up Last week we explored one way of attacking this problem.
Real-Time Rendering & Game Technology CS 446/651 David Luebke.
3D Mesh Simplification Electrical and Computer Engineering Department University of Coimbra Faculty of Science and Technology Presented by Luis A. Almeida.
Polygonal Simplification Techniques
Mesh Coarsening zhenyu shu Mesh Coarsening Large meshes are commonly used in numerous application area Modern range scanning devices are used.
View-dependent Adaptive Tessellation of Spline Surfaces
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 8 Ravi Ramamoorthi
Level of Detail Management for Games David Luebke University of Virginia Introduction, Overview.
- Laboratoire d'InfoRmatique en Image et Systèmes d'information
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 7 Ravi Ramamoorthi
Coherent Hierarchical Culling: Hardware Occlusion Queries Made Useful Jiri Bittner 1, Michael Wimmer 1, Harald Piringer 2, Werner Purgathofer 1 1 Vienna.
LODManager A framework for rendering multiresolution models in real-time applications J. Gumbau O. Ripollés M. Chover.
ALGORITHMS FOR POLYGON REDUCTION Author: Ing. Roman Schulz FIT VUT, 2008.
Level of Detail: Generating LODs David Luebke University of Virginia.
DPL2/10/2016 CS 551/651: Final Review David Luebke
David Luebke2/12/2016 CS 551 / 645: Introductory Computer Graphics David Luebke
Rendering Large Models (in real time)
DPL3/9/2016 CS 551/651: Simplification Continued David Luebke
DPL3/10/2016 CS 551/651: Simplification Continued David Luebke
Advanced Computer Graphics (Spring 2013) Mesh representation, overview of mesh simplification Many slides courtesy Szymon Rusinkiewicz.
Level of Detail: Generating LODs David Luebke University of Virginia.
UNC Chapel Hill David A. O’Brien Automatic Simplification of Particle System Dynamics David O’Brien Susan Fisher Ming C. Lin Department of Computer Science.
Real-Time Rendering & Game Technology CS 446/651 David Luebke.
Advanced Computer Graphics
CS Computer Graphics II
Level of Detail: A Brief Overview
CS679 - Fall Copyright Univ. of Wisconsin
CS475 3D Game Development Level Of Detail Nodes (LOD)
Today Runtime LOD Spatial Data Structures Overview
Parallel Model Simplification of Very Large Polygonal Meshes
Computer Graphics Research at Virginia
Chap 10. Geometric Level of Detail
Run-Time LOD Run-time algorithms may use static or dynamic LOD models:
Presentation transcript:

View-Dependent Simplification of Arbitrary Polygonal Environments David Luebke

…or how to render something like this at interactive rates

Outline Traditional polygonal simplification Traditional polygonal simplification Motivation for a new approach Motivation for a new approach Overview of the algorithm Overview of the algorithm View-dependent simplification View-dependent simplification Optimizing the algorithm Optimizing the algorithm Conclusions Conclusions

Polygonal Simplification The problem: The problem: –Polygonal models are often too complex to render at interactive rates One solution: One solution: –Polygonal simplification methods simplify the polygonal geometry of small or distant objects

Polygonal Simplification: Traditional Approach Create levels of detail (LODs) of objects: Create levels of detail (LODs) of objects: 10,108 polys1,383 polys474 polys46 polys Courtesy IBM

Polygonal Simplification: Traditional Approach Distant objects use coarser LODs: Distant objects use coarser LODs:

Previous Work: Creating LODs Creating LODs automatically Creating LODs automatically –Decimation (Shroeder 92) –Retiling Polygonal Objects (Turk 92) –Vertex binning (Rossignac 92) –Mesh Optimization (Hoppe 93) –Simplification Envelopes (Varshney 94, Cohen 96) –Many others…

ManifoldNon-manifold Previous Work: Creating LODs Traditional algorithms: Traditional algorithms: –Create LODs for each object separately in a preprocess –Are often slow (minutes or hours) –Require & preserve manifold topology:

Outline Traditional polygonal simplification Traditional polygonal simplification Motivation for a new approach Motivation for a new approach Overview of the algorithm Overview of the algorithm View-dependent simplification View-dependent simplification Optimizing the algorithm Optimizing the algorithm Conclusions Conclusions

Motivation Problem: Massive CAD models Problem: Massive CAD models –Handmade and often messy –Very large and complex Thousands of parts of all sizes Thousands of parts of all sizes Physically large: scenes, not objects Physically large: scenes, not objects

Courtesy Jet Propulsion Laboratory Massive Model Examples: Aerospace CAD Cassini space probe model Cassini space probe model 415,000 polygons 415,000 polygons

Courtesy General Dynamics, Electric Boat Div. Massive Model Examples: Maritime CAD Submarine Auxiliary Machine Room Submarine Auxiliary Machine Room 500,000 polygons 500,000 polygons

Courtesy General Dynamics, Electric Boat Div. Massive Model Examples: Maritime CAD Submarine Torpedo Room Submarine Torpedo Room 700,000 polygons 700,000 polygons

Courtesy ABB Engineering Massive Model Examples: Structural CAD Coal-fired power plant Coal-fired power plant 13 million polygons 13 million polygons

Limitations of Traditional LOD Most algorithms are: Most algorithms are: –Too fragile for messy CAD models –Too slow for large CAD models –Not suited for drastic simplification

Drastic Simplification: Large Objects Courtesy IBM and ACOG

Drastic Simplification: Small Objects Courtesy Electric Boat

Drastic Simplification: Preserving Topology Rotor model: Rotor model: –4736 faces –21 holes Courtesy Alpha_1 Project, University of Utah

Drastic Simplification: Preserving Topology 1006 faces, 21 holes46 faces, 1 hole

The Problems With Drastic Simplification For drastic simplification: For drastic simplification: –Large objects must be subdivided –Small objects must be combined –Topology must be simplified Difficult or impossible with traditional LOD Difficult or impossible with traditional LOD

Outline Traditional polygonal simplification Traditional polygonal simplification Motivation for a new approach Motivation for a new approach Overview of the algorithm Overview of the algorithm View-dependent simplification View-dependent simplification Optimizing the algorithm Optimizing the algorithm Conclusions Conclusions

Overview: A New Approach Dynamic: simplify objects on the fly Dynamic: simplify objects on the fly View-dependent: account for viewpoint View-dependent: account for viewpoint Global: simplify scenes, not objects Global: simplify scenes, not objects Automatic: simplify without user’s help Automatic: simplify without user’s help

Overview: The Algorithm A preprocess builds the vertex tree, a hierarchical clustering of vertices A preprocess builds the vertex tree, a hierarchical clustering of vertices At run time, clusters appear to grow and shrink as the viewpoint moves At run time, clusters appear to grow and shrink as the viewpoint moves Clusters that become too small are collapsed, filtering out some triangles Clusters that become too small are collapsed, filtering out some triangles

Data Structures The vertex tree The vertex tree –Represents the entire model –Hierarchy of all vertices in model –Queried each frame for updated scene The active triangle list The active triangle list –Represents the current simplification –List of triangles to be displayed

The Vertex Tree Each vertex tree node contains: Each vertex tree node contains: –A subset of model vertices –A representative vertex or repvert Folding a node collapses its vertices to the repvert Folding a node collapses its vertices to the repvert Unfolding a node splits the repvert back into vertices Unfolding a node splits the repvert back into vertices

Vertex Tree Example ABC I 3 II R Triangles in active list Vertex tree

Vertex Tree Example ABC I 3 II R A

Vertex Tree Example BC I 3 II R A 3 A

Vertex Tree Example BC I 3 II R A 3 B A

Vertex Tree Example C I 3 II R A 3 B 8 9 AB

Vertex Tree Example C I 3 II R A 3 B C 8 9 AB

Vertex Tree Example I 3 II R A 3 B C ABC

Vertex Tree Example II I 3 R A 3 B C II ABC

Vertex Tree Example C I 3 R A B II AB

Vertex Tree Example C103 R B II I A 10 AB III

Vertex Tree Example AC103 R B II I B I

Vertex Tree Example AC103 R R B II I B I

Vertex Tree Example ABC10 I 3 II R R

The Vertex Tree: Folding And Unfolding A A 3 Fold Node A Unfold Node A

The Vertex Tree: Tris and Subtris A 3 Fold Node A Unfold Node A Node->Tris : triangles that change shape upon folding Node->Subtris : triangles that disappear completely

The Vertex Tree: Tris and Subtris Each node’s tris and subtris can be computed offline to be accessed very quickly at run time Each node’s tris and subtris can be computed offline to be accessed very quickly at run time This is the key observation behind dynamic simplification This is the key observation behind dynamic simplification

Outline Traditional polygonal simplification Traditional polygonal simplification Motivation for a new approach Motivation for a new approach Overview of the algorithm Overview of the algorithm View-dependent simplification View-dependent simplification Optimizing the algorithm Optimizing the algorithm Conclusions Conclusions

View-Dependent Simplification Any run-time criterion for folding and unfolding nodes may be used Any run-time criterion for folding and unfolding nodes may be used I have examined three criteria: I have examined three criteria: –Screenspace error threshold –Silhouette preservation –Triangle budget simplification

Screenspace Error Threshold Nodes chosen by projected area Nodes chosen by projected area –User sets screenspace size threshold –Nodes which grow larger than threshold are unfolded

Silhouette Preservation Retain more detail near silhouettes Retain more detail near silhouettes –A silhouette node supports triangles on the visual contour –Use tighter thresholds when examining silhouette nodes

Triangle Budget Simplification Minimize error within specified number of triangles Minimize error within specified number of triangles –Sort nodes by screenspace error –Unfold node with greatest error –Repeat until budget is reached

Outline Traditional polygonal simplification Traditional polygonal simplification Motivation for a new approach Motivation for a new approach Overview of the algorithm Overview of the algorithm View-dependent simplification View-dependent simplification Optimizing the algorithm Optimizing the algorithm Conclusions Conclusions

Optimizations Exploiting temporal coherence Exploiting temporal coherence –Scene changes slowly over time Asynchronous simplification Asynchronous simplification –Parallelize the algorithm

Exploiting Temporal Coherence Idea: frame-to-frame changes are small Idea: frame-to-frame changes are small Two examples: Two examples: –Active triangle list –Vertex tree

Exploiting Temporal Coherence Active triangle list Active triangle list –Few triangles are added or deleted each frame –Store current simplification, make only incremental changes –Current implementation: doubly-linked list of triangles

Unfolded Nodes Boundary Nodes Exploiting Temporal Coherence Vertex Tree Vertex Tree –Few nodes change per frame –Don’t traverse whole tree –Do local updates only at boundary nodes

Algorithm partitions into two tasks: Algorithm partitions into two tasks: Run them on separate processors Run them on separate processors Simplify Task Render Task Active Triangle List … Asynchronous Simplification Vertex Tree

Outline Traditional polygonal simplification Traditional polygonal simplification Motivation for a new approach Motivation for a new approach Overview of the algorithm Overview of the algorithm View-dependent simplification View-dependent simplification Optimizing the algorithm Optimizing the algorithm Conclusions Conclusions

Conclusion View-dependent approach allows: View-dependent approach allows: –Drastic simplification –Fully automatic simplification These help enable real-time rendering of massive models These help enable real-time rendering of massive models

Conclusion Pros Pros –Very general Handles large and small objects Handles large and small objects Does not require clean mesh topology Does not require clean mesh topology –Fast preprocessing stage Cons Cons –Fundamentally an immediate-mode scheme Display lists 2-3 times faster Display lists 2-3 times faster

Contemporary Related Work Hoppe: Progressive Meshes Hoppe: Progressive Meshes –‘96: Dynamic LOD using edge collapse –‘97: View-dependent refinement –Pros: Dynamic, view-dependent simplification Dynamic, view-dependent simplification Elegant scheme for mesh attributes Elegant scheme for mesh attributes –Cons: Requires clean mesh topology Requires clean mesh topology Very slow preprocess Very slow preprocess Still per-object LOD Still per-object LOD

Garland: Quadric Error Metrics Garland: Quadric Error Metrics –‘97: Static LOD using vertex merging –Pros: Very fast Very fast Good fidelity Good fidelity Doesn’t require clean topology Doesn’t require clean topology –Cons: Still static LOD Still static LOD “Tweak factor” “Tweak factor” Contemporary Related Work

Future Work Better vertex trees Better vertex trees Better use of resources Better use of resources –Display lists –Additional parallelism –Memory management Simplification of dynamic scenes Simplification of dynamic scenes

Acknowledgements Thanks to: Thanks to: –My advisor, Dr. Fred Brooks –Dr. Greg Turk, Dr. Dinesh Manocha, and Carl Erikson for their ideas and support –IBM for funding my research –ARPA contract DABT63-93-C-C048

The End