Animation CS 551 / 651 Lecture 3 Classical Animation Lecture 3 Classical Animation.
CS 551/651: Advanced Computer Graphics
description
Transcript of CS 551/651: Advanced Computer Graphics
David Luebke 1 04/22/23
CS 551/651: Advanced Computer Graphics
Regulating Level of Detail
David Luebke 2 04/22/23
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 3 04/22/23
LOD In A Nutshell
Create levels of detail (LODs) of each object in a preprocess:
50 Vertices 500 Vertices 2000 Vertices
Model courtesy of InfoGraphica
David Luebke 4 04/22/23
LOD In A Nutshell
Distant objects use coarser LODs:
David Luebke 5 04/22/23
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 6 04/22/23
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
Can use this to estimate silhouette distortion in screenspace
David Luebke 7 04/22/23
Creating LODs
How to generate a version of the object with fewer polygons? Four basic mechanisms:
Sample-and-reconstruct Decimation Vertex-merging Adaptive subdivision
David Luebke 8 04/22/23
Creating LODs: Mechanism
Sample and reconstruct 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)
David Luebke 9 04/22/23
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, size of associated triangles
David Luebke 10 04/22/23
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 11 04/22/23
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 12 04/22/23
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 13 04/22/23
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 14 04/22/23
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 15 04/22/23
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 16 04/22/23
Rossignac-Borrel
Rossignac-Borrel examples:
10,108 polys 1,383 polys 474 polys 46 polys
Courtesy IBM
David Luebke 17 04/22/23
The End