1 / 60

View-Dependent Simplification of Arbitrary Polygonal Environments

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

Download Presentation

View-Dependent Simplification of Arbitrary Polygonal Environments

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. View-Dependent Simplification of Arbitrary Polygonal Environments David Luebke

  2. …or how to render something like this at interactive rates

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

  4. 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

  5. Polygonal Simplification:Traditional Approach • Create levels of detail (LODs) of objects: 10,108 polys 1,383 polys 474 polys 46 polys Courtesy IBM

  6. Polygonal Simplification:Traditional Approach • Distant objects use coarser LODs:

  7. 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…

  8. 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

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

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

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

  12. Massive Model Examples:Maritime CAD • SubmarineAuxiliary MachineRoom • 500,000polygons Courtesy General Dynamics, Electric Boat Div.

  13. Massive Model Examples:Maritime CAD • SubmarineTorpedoRoom • 700,000polygons Courtesy General Dynamics, Electric Boat Div.

  14. Massive Model Examples:Structural CAD • Coal-firedpower plant • 13 millionpolygons Courtesy ABB Engineering

  15. Limitations ofTraditional LOD • Most algorithms are: • Too fragile for messy CAD models • Too slow for large CAD models • Not suited for drastic simplification

  16. Drastic Simplification: Large Objects Courtesy IBM and ACOG

  17. Drastic Simplification: Small Objects Courtesy Electric Boat

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

  19. Drastic Simplification:Preserving Topology 1006 faces, 21 holes 46 faces, 1 hole

  20. 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

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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. Vertex Tree Example R A C I II 10 3 10 A B C 3 B 1 2 7 4 5 6 8 9

  33. 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

  34. Vertex Tree Example R A II I II 10 10 A B C 3 B 1 2 7 4 5 6 8 9

  35. Vertex Tree Example R A I II I II 10 10 A B C 3 B 1 2 7 4 5 6 8 9

  36. Vertex Tree Example R I II I II 10 A B C 3 B 1 2 7 4 5 6 8 9

  37. Vertex Tree Example R I II I II R 10 A B C 3 B 1 2 7 4 5 6 8 9

  38. Vertex Tree Example R I II R 10 A B C 3 1 2 7 4 5 6 8 9

  39. 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

  40. 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

  41. 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

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

  43. 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

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

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

  46. 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

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

  48. Optimizations • Exploiting temporal coherence • Scene changes slowly over time • Asynchronous simplification • Parallelize the algorithm

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

  50. 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

More Related