CS 551/651: Simplification Continued David Luebke cs551dl@cs.virginia.edu http://www.cs.virginia.edu/~cs551dl DPL 7/27/2016 Assignment 3 Issues Administrivia – Interactive 3-D paper in copy cabinet – Viewer & .poly files on web page Triangulation algorithms – Q: What is the difference between triangulating polygons and holes? – Q: What makes a “good” triangulation? – Don’t get too caught up in this DPL 7/27/2016 Assignment 3 Issues Most people’s first taste of computational geometry – Data structure & algorithm issues Ex: winged-edge mesh representation Ex: line segment intersection problem – Numerical issues Ex: co-linear points Ex: calculating polygon normal & area Q: What approaches might we take? DPL 7/27/2016 Assignment 3 Issues Take-home lesson: start soon Questions? DPL 7/27/2016 Recap Polygonal simplification or level of detail methods simplify the polygonal geometry of small or distant objects: Preprocess DPL Run time 7/27/2016 Recap: 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 Recap: LOD Mechanism SubQ: How might we generate a version of the object with fewer polygons? – A: Four basic mechanisms: Sample-and-reconstruct Decimation Vertex-merging DPL Adaptive subdivision 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 Decimation The algorithm: multiple passes over al model vertices – Consider each vertex for deletion Characterize local geometyr/topology Evaluate criteria & possibly delete vertex with surrounding triangles If deleted, triangulate resulting hole DPL 7/27/2016 Decimation Issues Characterizing vertices Decimation criteria – Simple vertices: distance to plane – Boundary & edge vertices: distance to edge DPL Triangulating holes: loop splitting 7/27/2016 Outlook More algorithms – Quadric error metrics – Simplification envelopes Next topic: hardware – Rendering pipeline – Graphics architectures DPL 7/27/2016