Dual Marching Cubes: An Overview Paper by Gregory M. Nielson.
Dual Marching Cubes: An Overview
description
Transcript of Dual Marching Cubes: An Overview
Dual Marching Cubes: An Overview
Paper by Gregory M. Nielson
Purpose
• Improve existing Marching Cube algorithm
• Eliminate or reduce poorly shaped triangles
• Eliminate or reduce wonky specular highlights
Motivation
• Duality Principal of Projective Geometry– All propositions occur in dual pairs.– One can infer the corresponding proposition of a
pair by interchanging the words point and line.• Dual Polyhedra
– For every polyhedron there is another polyhedron where faces and vertices occupy complementary locations.
Examples:
What Is Needed
• Develop a correspondence between the surface elements of a mesh and the vertices of some other mesh.
• Both meshes must have specific properties for this to occur.
Creating a Dual Surface
• Create a “patch” surface realized by eliminating the edges of the interior surface to the voxels.
• Make each patch of the new surface polygon bounded.
• Include each vertex of the original MC surface in exactly four patches.
• Call this surface S.
Creating a Dual Surface, pt. 2
• The dual surface will consist of quad patches.
• The connectivity of the patches is the same as the connectivity of the vertices of the surface S
• Now exploit duality principal.
Marching Cubes Defined
• Input: Fi,j,k = F(ix, jy, kz)• Denote the voxel: (ix, jy, kz) to
((I+1)x, (j+1)y, (k+1)z)• By: Bijk
• Separate lattice points with: Fi,j,k > a
Defining the Patch
• The patch surface has a fine structure given that it consist of three mutually orthogonal planar curves.
• Let Fj where j = 1, …, M denote the patches of S and
Fj = (Vj1, V,j2 …, Vj3) where
j = 1, …, M denote the vertices of each
patch.
Defining the Patch, cont.
• Each vertex of S lies on the edge of the lattice.
• Four voxels share each edge of the lattice.
• Thus each vertex, Vj, has exactly four patches of S that contain it.
Defining the Patch, cont.
• Let X(X) be the space of surfaces produced by allowing the vertices of S to slide anywhere along their respective lattice edges.
• The edges (of the lattice) joining a point in X to points not in X are the same edges containing the vertices of the MC surface.
Defining the Dual
• For S in X(X) S is a surface comprised of quad patches with the following properties:– For each patch Fj of S there is a vertex of S lying
in the interior of the voxel containing Fj
– For every vertex of S there is one quad patch Pj of S
– For every edge of S there is an associated edge of S
Four Adjacent Patches
Dual and PatchSurface
Summary of Definitions
• The topology for both the patch space, X(X), and the dual space (X) is completely determined by the subset X of the lattice L
• The connectivity of the vertices of X(X) is the same as the connectivity of the patches of (X) and vice versa.
• There is a one-to-one coorespondance between the edges of S and S. The edge joining two vertices of S cooresponds to the common edge of their associated quad patches.
Producing the Dual Directly
• It is not necessary to produce the patch surface and then the dual surface afterwards.
• There is a triangulation (quadulation?) table for computing the dual surface directly.
MC Triangulator Dual Rectangulator
Examples of the Dual Surface
Splatting: Mesh Viewing:
Improvement of Specular Lighting
Viewing Segmented Volumes
• The original volume with the samples of the function is not needed in order to apply the algorithm.
• Using the separating midpoint surface we can still view the mesh using the algorithm
Utilizing the Duality Principal
• Since the correspondance is one-to-one we have an inverse mapping back into the patch space
• Triangulation of Quadrilaterals will need to occur.
To Infinity and Beyond
• Repeated application of the v operator leads to increasing approximation of the original object.
• Eventually the v operator has no effect on the surface produced.
• This staged is called the fixed-point shroud.
Summary: Pros
• A definite refinement over the standard MC algorithm.
• Reduces visual artifacts from elongated triangles and improves specular lighting.
• Allows the user to define the level of precision in the final mesh.
Summary: Cons
• Not all surfaces produced are manifolds.– Normals, Curvature, etc– Simplification, Multiresolution, etc.
• Complexity?• Parallelism?
• Quad rendering is somewhat slower.