170 likes | 319 Views
CS 551/651: Advanced Computer Graphics. Regulating Level of Detail. 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
E N D
CS 551/651: Advanced Computer Graphics Regulating Level of Detail David Luebke 17/26/2014
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 27/26/2014
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 37/26/2014
LOD In A Nutshell • Distant objects use coarser LODs: David Luebke 47/26/2014
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 57/26/2014
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 67/26/2014
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 77/26/2014
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 87/26/2014
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 97/26/2014
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 107/26/2014
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 117/26/2014
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 127/26/2014
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 137/26/2014
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 147/26/2014
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 157/26/2014
Rossignac-Borrel • Rossignac-Borrel examples: 10,108 polys 1,383 polys 474 polys 46 polys Courtesy IBM David Luebke 167/26/2014
The End David Luebke 177/26/2014