Dual Marching Cubes: An Overview

23
Dual Marching Cubes: An Overview Paper by Gregory M. Nielson

description

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 - PowerPoint PPT Presentation

Transcript of Dual Marching Cubes: An Overview

Page 1: Dual Marching Cubes:  An Overview

Dual Marching Cubes: An Overview

Paper by Gregory M. Nielson

Page 2: Dual Marching Cubes:  An Overview

Purpose

• Improve existing Marching Cube algorithm

• Eliminate or reduce poorly shaped triangles

• Eliminate or reduce wonky specular highlights

Page 3: Dual Marching Cubes:  An Overview

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.

Page 4: Dual Marching Cubes:  An Overview

Examples:

Page 5: Dual Marching Cubes:  An Overview

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.

Page 6: Dual Marching Cubes:  An Overview

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.

Page 7: Dual Marching Cubes:  An Overview

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.

Page 8: Dual Marching Cubes:  An Overview

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

Page 9: Dual Marching Cubes:  An Overview

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.

Page 10: Dual Marching Cubes:  An Overview

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.

Page 11: Dual Marching Cubes:  An Overview

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.

Page 12: Dual Marching Cubes:  An Overview

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

Page 13: Dual Marching Cubes:  An Overview

Four Adjacent Patches

Dual and PatchSurface

Page 14: Dual Marching Cubes:  An Overview

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.

Page 15: Dual Marching Cubes:  An Overview

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.

Page 16: Dual Marching Cubes:  An Overview

MC Triangulator Dual Rectangulator

Page 17: Dual Marching Cubes:  An Overview

Examples of the Dual Surface

Splatting: Mesh Viewing:

Page 18: Dual Marching Cubes:  An Overview

Improvement of Specular Lighting

Page 19: Dual Marching Cubes:  An Overview

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

Page 20: Dual Marching Cubes:  An Overview

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.

Page 21: Dual Marching Cubes:  An Overview

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.

Page 22: Dual Marching Cubes:  An Overview

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.

Page 23: Dual Marching Cubes:  An Overview

Summary: Cons

• Not all surfaces produced are manifolds.– Normals, Curvature, etc– Simplification, Multiresolution, etc.

• Complexity?• Parallelism?

• Quad rendering is somewhat slower.