ViewDependent Simplification of Arbitrary Polygonal Environments - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

ViewDependent Simplification of Arbitrary Polygonal Environments

Description:

Combine simplification envelope and progressive mesh with top-down spatial subdivision ... Spatial subdivision unifies the 'vertex forest' into a single tree. Remarks ... – PowerPoint PPT presentation

Number of Views:37
Avg rating:3.0/5.0
Slides: 27
Provided by: aaronwo
Category:

less

Transcript and Presenter's Notes

Title: ViewDependent Simplification of Arbitrary Polygonal Environments


1
View-Dependent Simplification of Arbitrary
Polygonal Environments
  • David Luebke
  • Carl Erikson
  • Presented by
  • Aaron Wong-Sing

2
Hierarchical Dynamic Simplification
  • Simplifying arbitrary polygonal environments
  • Clustering vertices together in a hierarchical
    fashion

3
Polygonal Models in Interactive 3D Computer
Graphics
  • Mathematically Simple
  • Rapid Rendering of polygonal datasets
  • Widely available polygon-rendering hardware

4
When Complexity of Polygonal Models Exceeds
Capability of Graphics Hardware
  • Augment the raw polygonal data
  • Gouraud Shading and texture mapping
  • Cull away large portions which are occluded from
    current viewpoint
  • Polygonal Simplification
  • Simplify the polygonal geometry of small or
    distant objects
  • Reduces rendering cost without a significant loss
    to the visual content of the scene

5
Polygonal Simplification
  • Simplifies the geometry of entire scene
    dynamically as the user moves around
  • Algorithm criteria
  • General- As few assumptions as possible about
    input model
  • Deal robustly with degenerate and non-manifold
    models
  • Completely Automatic
  • Simplify scene adaptively
  • Dynamically Adjustable
  • Trade off performance with fidelity

6
Hierarchical Dynamic Simplification
  • Vertex Tree- single large data structure
  • Hierarchy of vertices queried dynamically
  • Information about the vertices and triangles of
    the model (not topology)
  • Collapsing all the vertices within a node to a
    single representative vertex
  • Triangles with collapsed corners become redundant
    and can be eliminated
  • Node can be expanded by splitting the vertex into
    the representative vertices of the nodes children

7
Hierarchical Dynamic Simplification
  • Entire system is dynamic
  • Nodes collapsed or expanded based on their screen
    size
  • Screenspace of node is monitored
  • Certain nodes in the vertex tree will fall below
    the size threshold
  • Fold and unfold the nodes for each frame

8
Active Triangle List
  • Takes advantage of temporal coherence
  • A sequence of visible triangles
  • Expanding a node appends triangles onto active
    triangle list collapsing the node removes them
  • Doubly linked list

9
Active Triangle List
  • struct Tri
  • Node corners3
  • Node proxies3
  • Tri prev, next

10
Vertex Tree
  • Created during preprocessing stage
  • Controls order vertices are collapsed
  • Stores data necessary to collapse and uncollapse
    vertices quickly
  • Unfolded nodes are labeled active folded nodes
    are labeled inactive
  • Active nodes comprise a contiguous region the
    active tree with boundary nodes

11
Vertex Tree
  • struct Node
  • BitVec id
  • Byte depth
  • NodeStatus label
  • Coord repvert
  • Coord center
  • float radius
  • Tri tris
  • Tri subtris
  • Node parent
  • Byte numchildren
  • Node children

12
View-Dependent Simplification
  • Screenspace Error Threshold
  • Collapse nodes which occupy a small amount of the
    screen
  • Error introduced by collapsing the vertices
  • maximum distance a vertex can be shifted during
    the collapse operation
  • length of the vector between the two farthest
    vertices in the cluster (screenspace error)

13
View-Dependent Simplification
  • Screenspace Error Threshold
  • Unfold nodes whose screenspace error gt user
    specified threshold t
  • No vertex shall move more than t pixels on the
    screen
  • Determining Screenspace of a vertex
  • Associate a bounding volume with each node in the
    vertex tree
  • Use Bounding Spheres

14
View-Dependent Simplification
  • Silhouette Preservation
  • Specify a cone of normals
  • coneNormal, a vector
  • coneAngle, a floating-point scalar
  • Conservatively bounds all normals of all
    triangles in subtree rooted at node
  • Viewing cone created at run time that originates
    from viewer and tightly encloses bounding sphere
    of node
  • Any normal in the cone of normals orthogonal to
    any direction within the viewing cone, node is
    potentially on the silhouette
  • Allocate more details to objects along
    silhouettes retain important visual cues for
    object recognition

15
Triangle-Budget Simplification
  • Allows user to specify number of triangles in the
    scene
  • HDS minimizes the screenspace error of boundary
    nodes within this constraint
  • Priority queue of boundary nodes
  • Ordered by screenspace error
  • Unfold node, remove from top of queue, insert
    children back into queue

16
Optimization
  • Exploiting Temporal Coherence
  • firstActiveAncestor() stored as a field of N
  • Culling the Active Triangle List
  • Clump polygons together using a spatial hierarchy
  • Distribute active triangles across the vertex
    tree
  • Rendering top-down traversal of vertex tree
  • Loses advantage of temporal coherence
  • Hybrid

17
Optimization
  • Avoiding Irrelevant Nodes
  • Invisible nodes may need to be examined
  • Tris and subtris of node visible
  • Irrelevant Nodes
  • Expanding or collapsing the node cannot possibly
    affect the scene
  • Does not contain a corner of any potentially
    visible triangle
  • Add a container field to each node in the vertex
    tree
  • Smallest node that contains every tri and subtri
    of the node and the nodes descendants

18
Optimization
  • Asynchronous Simplification
  • SIMPLIFY task traverses the vertex tree folding
    and unfolding nodes
  • RENDER task cycles over the active triangle list
    rendering each triangle
  • Let SIMPLIFY and RENDER run asynchronously
  • Avoid dropouts failure to maintain consistent
    database
  • Simple locking schemes inadequate
  • Use update queue all changes to active triangle
    list takes place as a batch before any triangles
    are rendered

19
Simplification
  • Spatial Subdivision
  • Space-partition vertices of model using an octree
  • Use local criteria to rank vertices
  • Most important vertex in node is representative
    vertex
  • Vertices clustered roughly according to proximity
  • Unless uniformly distributed vertices, octree
    highly unbalanced
  • Tight Octree
  • Smallest axis-aligned cube which encloses
    relevant vertices before node is subdivided
  • Efficient, easy to code, partitioning fast
  • No knowledge of polygon mesh used

20
Simplification
  • Spatial Subdivision
  • Space-partition vertices of model using an octree
  • Use local criteria to rank vertices
  • Most important vertex in node is representative
    vertex
  • Vertices clustered roughly according to proximity
  • Unless uniformly distributed vertices, octree
    highly unbalanced

21
Simplification
  • Simplification Envelopes
  • Offset surfaces of a polygonal mesh to prevent
    self-interaction an a bounded to a distance ? of
    a mesh
  • Preserves global topology that varies from the
    original surface no more than ?

22
Simplification
  • Progressive Meshes
  • Stream of edge collapse records in a progressive
    mesh maps to HDS vertex tree
  • Never collapses more than 2 vertices at a time
  • Collapse vertices within a mesh separate meshes
    never merge
  • Restricting edge collapses to those that preserve
    manifold topology limits possible simplification

23
Simplification
  • Hybrid Approach
  • Combine simplification envelope and progressive
    mesh with top-down spatial subdivision
  • Drastic simplification and merging of objects
  • Result is a collection of vertex trees of the
    collection of objects
  • Spatial subdivision unifies the vertex forest
    into a single tree

24
Remarks
  • Polygonal simplification is a process of
    approximation
  • Recover original object when algorithm taken to
    the limit
  • View-dependent simplification is immediate mode
  • Current hardware favours retained-mode display
    lists

25
Conclusion
  • HDS is framework for dynamic view-dependent
    simplification of complex polygonal environments
  • Framework is robust
  • Any simplification method reducible to a series
    of vertex clustering operations can be used by
    HDS preprocessing
  • Different criteria for expanding and collapsing
    vertices can be used by HDS
  • Supports screenspace error tolerance, triangle
    budget, silhouette preservation
  • Optimizations asynchronous simplification
    decouples rendering and simplification tasks

26
Conclusion
  • Future Work
  • HDS currently limited to static scenes
  • Fast spatial subdivision cannot keep up
  • Incremental algorithm for creating and
    maintaining vertex tree allow for simplification
    of dynamic scenes
  • More sophisticated run-time criteria
  • Bounding spheres poor fit for vertices in a
    cluster more sophisticated bounding volumes, but
    complicate nodeSize()
  • Nodes might be unfolded for more detail to
    regions containing specular highlights or
    perceptually important regions using
    gaze-directed heuristics.
Write a Comment
User Comments (0)
About PowerShow.com