lecture11.ppt
Download
Report
Transcript lecture11.ppt
CS 551/651:
Advanced Computer Graphics
Regulating Level of Detail
David Luebke
1
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 ter
David Luebke
2
7/27/2016
LOD In A Nutshell
Create levels of detail (LODs) of each object in
a preprocess:
50 Vertices
David Luebke
500 Vertices
3
2000 Vertices
Model courtesy of InfoGraphica
7/27/2016
LOD In A Nutshell
David Luebke
Distant objects use coarser LODs:
4
7/27/2016
Creating LODs
How to create LODs of a polygonal object?
Where should we simplify the object and where
should we preserve detail?
What mechanism to generate a version of the
object with fewer polygons?
David Luebke
5
7/27/2016
Creating LODs
What criteria should we try to preserve in the
simplified object?
A: Its visual appearance
Silhouettes
matter (so what do we do?)
Large flat regions can be simplified
Watch for distortion of texture/color/normals
We often measure fidelity with geometric criteria:
Volume
swept out by displaced surface
Distance from old surface to new surface
David Luebke
Can use this to estimate silhouette distortion in screenspace
6
7/27/2016
Creating LODs
How to generate a version of the object with
fewer polygons?
Four basic mechanisms:
Sample-and-reconstruct
Decimation
Vertex-merging
Adaptive
David Luebke
subdivision
7
7/27/2016
Creating LODs: Mechanism
Sample and reconstruct
David Luebke
Scatter surface with sample points, then
recreate using fewer sample points than original
surface had vertices
Where to put the sample points?
One answer: scatter at random, then let them
repel each other
How to recreate surface from samples?
A: Good question! (interesting, hot topic)
8
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
One
common algorithm: Loop splitting
Pick which face/vertex to remove based on
important criteria
Curvature,
David Luebke
size of associated triangles
9
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
Removes
exactly two (adjacent) triangles
Why might this be preferable? Why not?
David Luebke
10
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)
Big potential application: multiresolution modeling
David Luebke
11
7/27/2016
Algorithm 1:
Rossignac-Borrel
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)
Filter out degenerate polygons
David Luebke
12
7/27/2016
Rossignac-Borrel
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
David Luebke
13
7/27/2016
Rossignac-Borrel
Low and Tan, 1997
Refinement of Rossignac-Borrel
Use
cos(max edge angle/2) for curvature
Floating-cell clustering
Thick lines and dynamic shading
David Luebke
14
7/27/2016
Rossignac-Borrel
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
David Luebke
15
7/27/2016
Rossignac-Borrel
Rossignac-Borrel examples:
10,108 polys 1,383 polys
Courtesy IBM
David Luebke
474 polys
16
46 polys
7/27/2016
The End
David Luebke
17
7/27/2016