720 likes | 922 Views
3D Model Simplification (GATE-540). Dr.Çağatay ÜNDEĞER Instructor Middle East Technical University, GameTechnologies & General Manager SimBT Inc. e-mail : cagatay@undeger.com. References: David P. Luebke, A Developer’s Survey of Polygonal Simplification Algorithms
E N D
3D Model Simplification(GATE-540) Dr.Çağatay ÜNDEĞER Instructor Middle East Technical University, GameTechnologies & General Manager SimBT Inc. e-mail : cagatay@undeger.com References: David P. Luebke, A Developer’s Survey of Polygonal Simplification Algorithms Mark Duchaineau et al. ROAMing Terrain: Real-Time Optimally Adapting Meshes Game Technologies Program – Middle East Technical University – Spring 2010
Outline • Introduction to Simplification • Simplification Algorithm Selection Criteria • Kinds of Simplification Algorithms • Brief Description of Simplification Algorithms
Polygonal Models • Currently dominate interactivecomputer graphics because of • Their mathematical simplicity and • Their simple, regular renderingalgorithms that embed well in hardware.
Difficulties of Polygonal Models • Complexity of polygonal models are measured by the number of polygons • Complexity of required models seems to grow faster than the ability of ourgraphics hardware to render theminteractively.
Polygonal Simplification • Offers one solutionfor developers to deal with these complex models.
Polygonal Simplification • Flight simulators have long used hand-crafted multi-resolution airplane models to guarantee a constant frame rate. • In this course, we will deal with automated simplification of these models.
Determining Appropriate Algorithm • Need to answer several questions: • Why do I need to simplify models? • What do my models seem like? • What is important to me the most?
Why do I Need to Simplify? • Trying to eliminate redundant geometry? • e.g. Volumetric iso-surfacesgenerated by the marching cubes algorithm tile themodel’s flat regions with many small, coplanar triangles? • After subdivision of a model for finite-element analysis, a simplificationalgorithm is required to removeunnecessary geometry?
Why do I Need to Simplify? • Trying to reduce model size? • Geometric compression? • Creating a downloadable models for a Web site? • Minimizing storage requirements?
Why do I Need to Simplify? • Trying to improve runtime performance? • Generating levels of detail (LODs) of the objects in a scene? • Simplifying the polygonal scene being rendered, • By representing distant objects with a lower LOD and nearby objects with a higher LOD?
What do My Models Seem Like? • No algorithm today exists that simplifying all models sucessully. • Organic forms with smooth curves. • Mechanical objects with sharp corners, flat faces, and regular curves. • Precomputed colors, lighting or texture that must be considered.
What do My Models Seem Like? • A few large, high-complexity, individual objects (e.g. terrain data, medical data). • Multiple objects of moderate complexity. • Large assemblies of many small objects.
What is Important to Me? • Preserve accuracy in the simplified models? • Control the Hausdorff distance of the simplified vertices / surface to the original • Bound the volumetric deviation of the simplified mesh from the original... • Just want high visual fidelity? • Perception is more difficult to quantify than geometry • Preserve model’s topological genus?
What is Important to Me? • If run-time performance is crucial, • You may need an algorithm capable of drastic simplification. • A drastic simplification may require: • View-depended simplification • Topology-reduction simplification
Kinds of Algorithms • Many approaches, each with strengths andweaknesses. • Treatment of mesh topology • Simplification mechanism • Static, dynamic, view-depended
Treatment of Mesh Topology • Provides an important distinction • Topology: connected polygonal mesh structure • Genus: number of holes in the mesh surface Genus of zero Genus of one Genus of three
Treatment of Mesh Topology • The mesh forms a 2D manifold • if the neighborhood of every feature consists of aconnected ring of polygons forming a single surface. • In a triangulated manifold mesh: • Exactly two triangles share every edge, and • Every triangle shares an edge with exactly three neighboringtriangles. (accept borders)
Treatment of Mesh Topology • Manifold meshes result in well-behaved models. • Any simplification algorithm can successfullyoperate on any manifold object. • Some algorithms (e.g. marching-cubes) guarantee manifold output. • Some models have cracks, T-junctions, and nonmanifold points or edges.
Treatment of Mesh Topology • A topology-preservingsimplification algorithm: • Preservesmanifold connectivity at every step. • Fidelity tends to be relatively good. • Can’t be simplified drastically. • Requires a mesh with manifold topology. • A topology tolerantsimplification algorithm: • Ignores regions in the mesh with nonmanifold local topology, • Leaves those regions unsimplified.
Treatment of Mesh Topology • A topology-modifyingalgorithm: • Don’t necessarily preservemanifold topology. • May close up holes in the model and aggregate separateobjects into assemblies • Permittingdrastic simplification beyond the scope of topology-preserving schemes. • Often provides poor visual fidelity. • Good at real-time visualizationof complex scenes.
Simplification Mechanism • Four basic polygon removal mechanisms: • Sampling, • Adaptive subdivision, • Decimation, and • Vertex merging.
Sampling • Sample the initial model’s geometry: • With points on the model’s surface or • With voxels superimposed on the model in a 3D grid. • More elaborate and difficult to codeapproaches. • Trouble achieving highfidelity. • Work best on smooth organic forms with no sharpcorners.
Adaptive Subdivision • Finds a simple base mesh that can be recursively subdivided to closely approximate the initial model. • Requires creating a base model that captures the original model’s important features, which can be tricky. • Preserve the surface topology, which may limit their capacity for drastic simplification.
Decimation • Iteratively remove vertices or faces from the mesh, re-triangulating the resulting hole after each step. • Relatively simple to code and can be very fast. • Use strictly local changes that tend to preserve the genus. • This restricts drastic simplification.
Vertex Merge • Collapses two or more vertices of a triangulated model into a single vertex, • Which in turn can be merged with other vertices.
Vertex Merge • A simple and easy-to-code mechanism. • Range fromsimple, fast, and crude to complex, slow, and accurate.
Static, Dynamic, and View-Dependent Simplification • Traditional static approach: • Polygonal simplification creates several discrete versions of each object in a preprocess, each at a different LOD. • Decoupling simplification and rendering makes this the simplest model to code. • Each LOD can be converted during preprocessing to triangle strips and compiled as a separate display list.
Static, Dynamic, and View-Dependent Simplification • Dynamic approach: • Creates a data structure, which encodes a continuous spectrum of detail. • Desired LOD can be extracted from this structure at run-time. • Advantage: uses no more polygons than necessary.
Static, Dynamic, and View-Dependent Simplification • View-dependent simplification: • Extends dynamic simplification by using view-dependent criteria • Selects the most appropriate LOD for the current view.
Brief Description of Some Simplification Algorithms • Triangle Mesh Decimation • Vertex Clustering • Multiresolution Analysis of Arbitrary Meshes • Voxel-Based Object Simplification • Simplification Envelopes • Appearance-Preserving Simplification • Quadric-Error Metrics • Image-Driven Simplification • Progressive Meshes • Real-Time Optimally Adapting Meshes (ROAM)
Triangle Mesh Decimation • By Schroeder, Zarge, and Lorenson • Simplify general polygonal models. • Term decimation for iterative removal of vertices. • Designed to operate on the output of the marching cubes algorithm. • Coplanar regions divided into many more polygons than necessary.
Triangle Mesh Decimation • Multiple passes over all the vertices: • If the vertex can be removed without violating the local topology, and • If resulting surface would lie within a user-specified distance of the unsimplified geometry, • Deletes vertex and all its associated triangles. • Hole in the mesh is re-triangulated.
Triangle Mesh Decimation • Vertices of simplified model are a subset of the original model’s vertices. • Convenient for reusing normals and texture coordinates at the vertices. • Limit the fidelity of the simplifications. • Quite fast and topology tolerant. • Available as part of the Visualization Tool Kit at http://www.kitware.com/vtk.html
Vertex Clustering • ByRossignac and Borrel • Topology insensitive, neitherrequiring nor preserving valid topology.
Vertex Clustering • Assigns an importance to each vertex. • More Important: • Vertices attached to large faces and vertices of high curvature • Less Important: • Vertices attached to small faces and vertices of low curvature.
Vertex Clustering • Overlays a 3D grid on the model • Collapses all vertices within each cell of the grid to the single most important vertex in cell.
Vertex Clustering • Grid’s resolution determines quality of simplification. • During the clustering process, • Triangles whose corners are collapsed together become degenerate and disappear.
Vertex Clustering • A unique feature in rendering merged corners. • Renders using the graphics hardware line and point primitives. • a triangle with two corners collapsed is a line • a triangle with three corners collapsed is a point
Vertex Clustering • A different clustering approach called floating-cell clustering by Low and Tan. • Ranks vertices by importance. • A cell of user-specified size is centered on the most important vertex. • Collapses all vertices falling within the cell to the representative vertex. • The mostimportant remaining vertexbecomes the center of thenext cell, • And the process repeats.
Vertex Clustering • Extremely fast. • Run in O(n) time for n vertices. • Since algorithm: • Don’t preserve topology, and • Don’t guarantee the amount of error introduced by the simplified surface, Often less pleasing visually than those of slower algorithms.
Multiresolution Analysis of Arbitrary Meshes (MRA) • Adaptive subdivision algorithm by Eck et al. • Uses a compact wavelet representation to guide a recursive subdivision process. • Fast enough to do at runtime • Guarantee that the simplified surface lies within a userspecified distance of the original model. Wavelet series is a squre-integrable function.
Multiresolution Analysis of Arbitrary Meshes (MRA) • Provides a method for finding a simple base mesh • That exhibits subdivision connectivity, • So that recursive subdivision will recover the original mesh.
Multiresolution Analysis of Arbitrary Meshes (MRA) • Base mesh by growing Voronoi-like regions across the original surface’s triangles. • When these regions can’t grow anymore, • Voronoi sites form a Delaunay-like triangulation, and • The triangulation forms the base mesh.
Multiresolution Analysis of Arbitrary Meshes (MRA) • Manifold topology is required in the input model. • Strict topology-preserving approach. • Original object’s shape and genus limit the potential for drastic simplification. • Fidelity is quite high for smooth, organic forms. • Has difficulty capturing sharp features.
Voxel-based Object Simplification • By He et al. • Simplify topology in a gradual and controlled manner using a signal processing approach. • Sample a volumetric representation of the model • By Superimposing a 3D grid of voxels over the polygonal geometry.
Voxel-based Object Simplification • Aassigns each voxel a value of 1 or 0, • According to whether the sample point of that voxel lies inside or outside the object. • Resamples the volume with a lower resolution • To elliminate small, high-frequency features. • Applies marching cubes. • Uses topology-preserving algorithm as a postprocess to eliminate redundant geometry.
Voxel-based Object Simplification • High-frequency details such as sharp edges and corners are lost. • Greatly restricts its usefulness on mechanical CAD models. • Isn’t topology tolerant, • Since deciding whether sample points lie inside or outside the object requires closed-mesh objects.
Simplification Envelopes • By Cohen et al. • Guarantee fidelity bounds • While enforcing global and local topology. • Two offset surfaces, no more than some distance ε from the original surface. outher ε original -ε inner
Simplification Envelopes • Outher envelope • Displaces each vertex of the original mesh along its normal by ε, • Inner envelope: • Displaces each vertex by −ε. • Aren’t allowed to self-intersect. • If so, algorithm decreases ε in the local neighborhood.
Simplification Envelopes • Envelopes can guide the simplification process. • Keeping simplified surface within envelopes • Iteratively remove triangles or vertices, and • Retriangulate the resulting holes.