Download presentation
Presentation is loading. Please wait.
Published byHollie Spencer Modified over 9 years ago
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 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
4
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
5
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
6
Polygonal Simplification: Traditional Approach Distant objects use coarser LODs: Distant objects use coarser LODs:
7
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…
8
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:
9
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
10
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
11
Courtesy Jet Propulsion Laboratory Massive Model Examples: Aerospace CAD Cassini space probe model Cassini space probe model 415,000 polygons 415,000 polygons
12
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
13
Courtesy General Dynamics, Electric Boat Div. Massive Model Examples: Maritime CAD Submarine Torpedo Room Submarine Torpedo Room 700,000 polygons 700,000 polygons
14
Courtesy ABB Engineering Massive Model Examples: Structural CAD Coal-fired power plant Coal-fired power plant 13 million polygons 13 million polygons
15
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
16
Drastic Simplification: Large Objects Courtesy IBM and ACOG
17
Drastic Simplification: Small Objects Courtesy Electric Boat
18
Drastic Simplification: Preserving Topology Rotor model: Rotor model: –4736 faces –21 holes Courtesy Alpha_1 Project, University of Utah
19
Drastic Simplification: Preserving Topology 1006 faces, 21 holes46 faces, 1 hole
20
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
21
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
22
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
23
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
24
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
25
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
26
Vertex Tree Example 1 3 2 9 87 10 54 6 12745689 ABC I 3 II R Triangles in active list Vertex tree
27
Vertex Tree Example 3 1 2 9 87 10 54 6 12745689 ABC I 3 II R A
28
Vertex Tree Example 9 8 10 54 6 12745689 BC I 3 II R A 3 A
29
Vertex Tree Example 9 8 10 54 6 12745689 BC I 3 II R A 3 B A
30
Vertex Tree Example 10 12745689 C I 3 II R A 3 B 8 9 AB
31
Vertex Tree Example 10 12745689 C I 3 II R A 3 B C 8 9 AB
32
Vertex Tree Example 10 12745689 I 3 II R A 3 B C ABC
33
Vertex Tree Example II 10 12745689 I 3 R A 3 B C II ABC
34
Vertex Tree Example 10 12745689 C I 3 R A B II AB
35
Vertex Tree Example 12745689 C103 R B II I A 10 AB III
36
Vertex Tree Example 12745689 AC103 R B II I B I
37
Vertex Tree Example 12745689 AC103 R R B II I B I
38
Vertex Tree Example 12745689 ABC10 I 3 II R R
39
The Vertex Tree: Folding And Unfolding 3 1 2 9 87 10 54 6 A 9 8 54 6 A 3 Fold Node A Unfold Node A
40
The Vertex Tree: Tris and Subtris 3 1 2 9 87 10 54 6 9 8 54 6 A 3 Fold Node A Unfold Node A Node->Tris : triangles that change shape upon folding Node->Subtris : triangles that disappear completely
41
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
42
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
43
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
44
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
45
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
46
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
47
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
48
Optimizations Exploiting temporal coherence Exploiting temporal coherence –Scene changes slowly over time Asynchronous simplification Asynchronous simplification –Parallelize the algorithm
49
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
50
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
51
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
52
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
53
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
54
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
55
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
56
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
57
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
58
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
59
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
60
The End
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.