600 likes | 735 Views
View-Dependent Simplification of Arbitrary Polygonal Environments. David Luebke. …or how to render something like this at interactive rates. Outline. Traditional polygonal simplification Motivation for a new approach Overview of the algorithm View-dependent simplification
E N D
View-Dependent Simplification of Arbitrary Polygonal Environments David Luebke
Outline • Traditional polygonal simplification • Motivation for a new approach • Overview of the algorithm • View-dependent simplification • Optimizing the algorithm • Conclusions
Polygonal Simplification • The problem: • Polygonal models are often too complex to render at interactive rates • 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: 10,108 polys 1,383 polys 474 polys 46 polys Courtesy IBM
Polygonal Simplification:Traditional Approach • Distant objects use coarser LODs:
Previous Work:Creating LODs • 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…
Previous Work:Creating LODs • Traditional algorithms: • Create LODs for each object separately in a preprocess • Are often slow (minutes or hours) • Require & preserve manifold topology: Manifold Non-manifold
Outline • Traditional polygonal simplification • Motivation for a new approach • Overview of the algorithm • View-dependent simplification • Optimizing the algorithm • Conclusions
Motivation • Problem: Massive CAD models • Handmade and often messy • Very large and complex • Thousands of parts of all sizes • Physically large: scenes, not objects
Massive Model Examples:Aerospace CAD • Cassini space probe model • 415,000polygons Courtesy Jet Propulsion Laboratory
Massive Model Examples:Maritime CAD • SubmarineAuxiliary MachineRoom • 500,000polygons Courtesy General Dynamics, Electric Boat Div.
Massive Model Examples:Maritime CAD • SubmarineTorpedoRoom • 700,000polygons Courtesy General Dynamics, Electric Boat Div.
Massive Model Examples:Structural CAD • Coal-firedpower plant • 13 millionpolygons Courtesy ABB Engineering
Limitations ofTraditional LOD • 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: • 4736 faces • 21 holes Courtesy Alpha_1 Project, University of Utah
Drastic Simplification:Preserving Topology 1006 faces, 21 holes 46 faces, 1 hole
The Problems WithDrastic Simplification • For drastic simplification: • Large objects must be subdivided • Small objects must be combined • Topology must be simplified • Difficult or impossible with traditional LOD
Outline • Traditional polygonal simplification • Motivation for a new approach • Overview of the algorithm • View-dependent simplification • Optimizing the algorithm • Conclusions
Overview: A New Approach • Dynamic: simplify objects on the fly • View-dependent: account for viewpoint • Global: simplify scenes, not objects • Automatic: simplify without user’s help
Overview: The Algorithm • A preprocess builds the vertex tree, a hierarchical clustering of vertices • At run time, clusters appear to grow and shrink as the viewpoint moves • Clusters that become too small are collapsed, filtering out some triangles
Data Structures • The vertex tree • Represents the entire model • Hierarchy of all vertices in model • Queried each frame for updated scene • The active triangle list • Represents the current simplification • List of triangles to be displayed
The Vertex Tree • Each vertex tree node contains: • A subset of model vertices • A representative vertex or repvert • Folding a node collapses its vertices to the repvert • Unfolding a node splits the repvert back into vertices
Vertex Tree Example 8 7 R 2 I II 10 6 9 3 10 A B C 3 1 1 2 7 4 5 6 8 9 4 5 Vertex tree Triangles in active list
Vertex Tree Example 8 7 R A 2 I II 10 6 9 3 10 A B C 3 1 1 2 7 4 5 6 8 9 4 5
Vertex Tree Example 8 R A I II 10 6 9 3 10 A B C 3 1 2 7 4 5 6 8 9 4 5
Vertex Tree Example 8 R A I II 10 6 9 3 10 A B C 3 B 1 2 7 4 5 6 8 9 4 5
Vertex Tree Example 8 R A I II 10 9 3 10 A B C 3 B 1 2 7 4 5 6 8 9
Vertex Tree Example 8 R A C I II 10 9 3 10 A B C 3 B 1 2 7 4 5 6 8 9
Vertex Tree Example R A C I II 10 3 10 A B C 3 B 1 2 7 4 5 6 8 9
Vertex Tree Example R A C II I II 10 3 10 A B C 3 B 1 2 7 4 5 6 8 9
Vertex Tree Example R A II I II 10 10 A B C 3 B 1 2 7 4 5 6 8 9
Vertex Tree Example R A I II I II 10 10 A B C 3 B 1 2 7 4 5 6 8 9
Vertex Tree Example R I II I II 10 A B C 3 B 1 2 7 4 5 6 8 9
Vertex Tree Example R I II I II R 10 A B C 3 B 1 2 7 4 5 6 8 9
Vertex Tree Example R I II R 10 A B C 3 1 2 7 4 5 6 8 9
8 8 7 A A 2 10 10 6 6 9 9 3 3 1 4 5 4 5 The Vertex Tree:Folding And Unfolding Fold Node A UnfoldNode A
8 A 10 6 9 3 4 5 The Vertex Tree:Tris and Subtris 8 7 Fold Node A 2 10 6 9 3 UnfoldNode A 1 4 5 Node->Tris: triangles that change shape upon folding Node->Subtris: triangles that disappear completely
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 The Vertex Tree:Tris and Subtris
Outline • Traditional polygonal simplification • Motivation for a new approach • Overview of the algorithm • View-dependent simplification • Optimizing the algorithm • Conclusions
View-Dependent Simplification • Any run-time criterion for folding and unfolding nodes may be used • I have examined three criteria: • Screenspace error threshold • Silhouette preservation • Triangle budget simplification
Screenspace Error Threshold • 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 • 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 • Sort nodes by screenspace error • Unfold node with greatest error • Repeat until budget is reached
Outline • Traditional polygonal simplification • Motivation for a new approach • Overview of the algorithm • View-dependent simplification • Optimizing the algorithm • Conclusions
Optimizations • Exploiting temporal coherence • Scene changes slowly over time • Asynchronous simplification • Parallelize the algorithm
Exploiting Temporal Coherence • Idea: frame-to-frame changes are small • Two examples: • Active triangle list • Vertex tree
Exploiting Temporal Coherence • 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