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