dual marching cubes: an overview paper by gregory m. nielson
TRANSCRIPT
![Page 1: Dual Marching Cubes: An Overview Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/1.jpg)
Dual Marching Cubes: An Overview
Paper by Gregory M. Nielson
![Page 2: Dual Marching Cubes: An Overview Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/2.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/3.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/4.jpg)
Examples:
![Page 5: Dual Marching Cubes: An Overview Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/5.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/6.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/7.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/8.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/9.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/10.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/11.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/12.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/13.jpg)
Four Adjacent Patches
Dual and PatchSurface
![Page 14: Dual Marching Cubes: An Overview Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/14.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/15.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/16.jpg)
MC Triangulator Dual Rectangulator
![Page 17: Dual Marching Cubes: An Overview Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/17.jpg)
Examples of the Dual Surface
Splatting: Mesh Viewing:
![Page 18: Dual Marching Cubes: An Overview Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/18.jpg)
Improvement of Specular Lighting
![Page 19: Dual Marching Cubes: An Overview Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/19.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/20.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/21.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/22.jpg)
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 Paper by Gregory M. Nielson](https://reader031.vdocuments.site/reader031/viewer/2022031806/56649d1b5503460f949f110c/html5/thumbnails/23.jpg)
Summary: Cons
• Not all surfaces produced are manifolds.– Normals, Curvature, etc– Simplification, Multiresolution, etc.
• Complexity?• Parallelism?
• Quad rendering is somewhat slower.