Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dual Marching Cubes: An Overview

Similar presentations


Presentation on theme: "Dual Marching Cubes: An Overview"— Presentation transcript:

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

2 Purpose Improve existing Marching Cube algorithm
Eliminate or reduce poorly shaped triangles Eliminate or reduce wonky specular highlights

3 Motivation Duality Principal of Projective Geometry Dual Polyhedra
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.

4 Examples:

5 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.

6 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.

7 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.

8 Marching Cubes Defined
Input: Fi,j,k = F(ix, jy, kz) Denote the voxel: (ix, jy, kz) to ((I+1)x, (j+1)y, (k+1)z) By: Bijk Separate lattice points with: Fi,j,k > a

9 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.

10 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.

11 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.

12 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

13 Four Adjacent Patches Dual and Patch Surface

14 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.

15 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.

16 MC Triangulator Dual Rectangulator

17 Examples of the Dual Surface
Splatting: Mesh Viewing:

18 Improvement of Specular Lighting

19 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

20 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.

21 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.

22 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.

23 Summary: Cons Not all surfaces produced are manifolds. Parallelism?
Normals, Curvature, etc Simplification, Multiresolution, etc. Quad rendering is somewhat slower. Complexity? Parallelism?


Download ppt "Dual Marching Cubes: An Overview"

Similar presentations


Ads by Google