Download presentation source

Download Report

Transcript Download presentation source

CS 551/651:
Simplification
David Luebke
[email protected]
http://www.cs.virginia.edu/~cs551dl
DPL
7/27/2016
Administrivia

Hand out assignment 3
– Due in two weeks
DPL
7/27/2016
Onward

Main topic: speed
– Visibility culling: done
– Level of detail: next
– Texture tricks: if possible
DPL
7/27/2016
Level of Detail
Problem: even after visibility, model
may contain too many polygons
 Idea: reduce complexity further by
managing level of detail (LOD)
 A.k.a. multiresolution modeling
 A.k.a. polygonal simplification

– My favorite term
DPL
7/27/2016
Level of Detail

DPL
Polygonal simplification methods
simplify the polygonal geometry of
small or distant objects
7/27/2016
Traditional Approach

Create levels of detail (LODs) of
each object in a preprocess:
10,108 polys 1,383 polys
DPL
474 polys
46 polys
7/27/2016
Traditional Approach

DPL
Distant objects use coarser LODs:
7/27/2016
Traditional Approach

Traditional LOD in a nutshell:
– Create LODs for each object
separately in a preprocess
– At run-time, pick each object’s LOD
according to the object’s distance
(or similar criterion)

DPL
Since LODs are created offline at
fixed resolutions, I refer to this as
Static LOD
7/27/2016
Creating LODs

Q: How might you create LODs of a
polygonal object?
– SubQ: How might we generate a
version of the object with fewer
polygons?
– SubQ: What criteria might we try to
preserve in the simplified object?
DPL
7/27/2016
Creating LODs

SubQ: How might we generate a
version of the object with fewer
polygons?
– A: Four basic mechanisms:
Sample-and-reconstruct
 Decimation
 Vertex-merging
 Adaptive subdivision

DPL
7/27/2016
Creating LODs:
Mechanism

Sample and reconstruct
– Scatter surface with sample points, then
recreate using fewer sample points than
original surface had vertices
– Q: Where to put the sample points?
– One answer: scatter at random, then let
them repel each other
– Q: How to recreate surface from samples?
– A: Good question! (open, hot topic)
DPL
7/27/2016
Creating LODs:
Mechanism

Decimation
– Iteratively remove faces or vertices,
retriangulating hole created in current
surface during the process (draw it)
– Triangulation: well understood problem

Commonest algorithm: Loop splitting
– Q: How to pick which face/vertex to
remove?
– A: What are we trying to preserve?
DPL
7/27/2016
Creating LODs:
Mechanism

Vertex merging
– Collapse multiple vertices together and
remove degenerate triangles
– Edge collapse: Specific form of vertex
merge operating on exactly two
vertices that share an edge
Q: How many triangles will this remove?
 Q: Why might this be preferable? Why not?

– Q: What happens if degenerate
triangles are not removed?
DPL
7/27/2016
Creating LODs:
Mechanism

Adaptive subdivision
– Create a very simple base model that
represents the model
– Selectively subdivide faces of base
model until fidelity criterion met (draw)
– Q: Why might this be hard?
– Q: Why might this not simplify model?
– Big potential application:
multiresolution modeling
DPL
7/27/2016
Creating LODs

SubQ: What criteria might we try to
preserve in the simplified object?
– A: Generally, its visual appearance
– But this is hard to quantify
Imperfectly understood visual system
 Very computationally intensive

– Often settle for geometric criteria like:
Distance from old surface to new surface
 Volume swept out by displaced surface

DPL
7/27/2016
Algorithm 1:
Vertex Clustering
Rossignac and Borrel, 1992
 Apply a uniform 3D grid to the object
 Collapse all vertices in each grid cell
to single most important vertex,
defined by:

– Curvature (1 / maximum edge angle)
– Size of polygons (edge length)

DPL
Filter out degenerate polygons
7/27/2016
Vertex Clustering

Resolution of grid determines
degree of simplification
– Coarse grid  lots of simplification
– Fine grid  little simplification

Representing degenerate triangles
– Edges  use OpenGL line primitive
– Points  use OpenGL point primitive
DPL
7/27/2016
Vertex Clustering

Low and Tan, 1997
– Refinement of Rossignac-Borrel
Use cos(max edge angle/2) for curvature
 Floating-cell clustering
 Thick lines and dynamic shading

DPL
7/27/2016
Vertex Clustering

Pros
– Fast, very fast
– Robust (topology-insensitive)

Cons
– Difficult to specify simplification degree
– Low fidelity (topology-insensitive)
– Underlying grid creates sensitivity to
model orientation in Rossignac-Borrel
DPL
7/27/2016
Vertex Clustering

Rossignac-Borrel examples:
10,108 polys 1,383 polys
DPL
Courtesy IBM
474 polys
46 polys
7/27/2016
Outlook

More algorithms
– Decimation
– Simplification envelopes
– Quadric error metrics

Next topic: hardware
– Rendering pipeline
– Graphics architectures
DPL
7/27/2016