Unconstrained Isosurface Extraction on Arbitrary Octrees Michael Kazhdan, Allison Klein, Ketan...
-
Upload
frederick-berry -
Category
Documents
-
view
219 -
download
3
Transcript of Unconstrained Isosurface Extraction on Arbitrary Octrees Michael Kazhdan, Allison Klein, Ketan...
Unconstrained Isosurface Extraction on
Arbitrary Octrees
Michael Kazhdan,Allison Klein,Ketan Dalal,Hugues Hoppe
Implicit Representation
In many graphics applications, a 3D model is represented by an implicit function:
Reconstruction Fluid Dynamics 3D Texturing
Kazhdan 2005
Losasso et al. 2004
Octree Representation
To minimize the spatial/temporal complexity, the function is often sampled on an adaptive grid
Kazhdan et al. 2006Popinet 2003
Octree Extraction
Often, in the final processing step, we would like to extract an implicit surface from the function representation.
Marching Cubes
If the function is sampled on a regular voxel grid, we can independently triangulate each voxel.
Marching Cubes
Although each of the voxels is triangulated independently, the mesh is always water-tight.
Marching Cubes
Iso-vertices on an edge are only determined by the values on the corner of the edge:
Iso-vertices are consistent across voxels.
Marching Cubes
Iso-edges on a face are only determined by the values on the face:
Each iso-edge is shared by two triangles so the mesh is water-tight.
Challenges
Extracting a surface by independently triangulating the leaf octants, depth-disparities can cause:
Inconsistent extrapolation to edges Inconsistent iso-vertex positions
Challenges
Extracting a surface by independently triangulating the leaf octants, depth-disparities can cause:
Inconsistent extrapolation to faces Inconsistent iso-edges
Outline
Introduction Related Work Approach Evaluation Conclusion
Related Work [Bloomenthal ’88]
1,150,915 Vertices2,301,826 Triangles
139,211 Vertices106,717 Polygons
Uses an octree representation of the EDT for adaptive surface polygonization
Related Work [Bloomenthal ’88]
Approach: Use finer edges to define iso-vertices.
Related Work [Bloomenthal ’88]
Approach: Use finer edges to define iso-vertices. Use finer faces to define iso-edges
Related Work [Bloomenthal ’88]
Properties: Triangles become polygons Each iso-edge is shared by two polygons
Related Work [Bloomenthal ’88]
Properties: Triangles become polygons Each iso-edge is shared by two polygonsWatertight polygon mesh!
Related Work [Bloomenthal ’88]
Properties: Triangles become polygons Each iso-edge is shared by two polygons
Limitation:There cannot be more than one isovalue-crossing along an edge of a leaf octant.
Watertight polygon mesh!
Related Work
Although this limitation can be resolved by: Refining the octree [Bloomenthal 88, Muller et al. 93] Restricting the topology [Westermann et al. 99] Modifying corner values [Velasco and Torres 01] Re-sampling [Ju et al. 02, Schaefer et al. 04]
we want a solution that is true to the input.
Outline
Introduction Related Work Approach
Edge-Trees (Polygonization) Triangulation
Evaluation Conclusion
Edge-Trees
a
a1a0
a11a10
a
a1
a0
a11
a10
The topology of the octree defines a set of binary trees:
Nodes in the edge-trees
Edges of octree nodes
Edge-Trees
b1
b11b10
a
a1a0
a11a10
a
a1
a0
a11
a10
b1
b11
b10
The topology of the octree defines a set of binary trees:
Nodes in the edge-trees
Edges of octree nodes
Edge-Trees
b0b1
b11b10
a
a1a0
a11a10
a
a1
a0
a11
a10
b1
b11
b10
b0
The topology of the octree defines a set of binary trees:
Nodes in the edge-trees
Edges of octree nodes
Edge-Trees
0
1 1
0b0b1
b11b10
0
1 1
a
a1a0
0 1a11a10
a
a1
a0
a11
a10
b1
b11
b10
b0
The topology of the octree defines a set of binary trees.
Given an isovalue:
Can label nodes in the edge-tree (0/1).
Edge-Trees
Note: Parents’ values are
determined by values of their children.
Isovalue-crossing nodes/edges have exactly one child that is isovalue-crossing.
a
a1
a0
a11
a10
b1
b11
b10
b0
0
1 1
a
a1a0
0 1a11a10
0
1 1
0b0b1
b11b10
Outline
Introduction Related Work Approach
Edge-Trees (Polygonization) Iso-Vertex Consistency Polygonization
Triangulation Evaluation Conclusion
Iso-Vertex Consistency
We define the position of an iso-vertex in terms of leaf nodes in the edge-tree.
1
00 1
e
e 1
1
11 0e’
e’
Iso-Vertex Consistency
We define the position of an iso-vertex in terms of leaf nodes in the edge-tree:
An isovalue-crossing edge defines a unique path to a leaf node in an edge-tree.
1
00 1
e
1
1
11 0e’
e
e’
Polygonization
Observation:
Number of unsealed iso-vertices along an octant edge is even.
Generate polygons by stitching pairs of unsealed iso-vertices.
Polygonization
?? ??
Challenge:With more than two unsealed iso-vertices, which pairs do we stitch together?
Challenge:With more than two unsealed iso-vertices, which pairs do we stitch together?
Polygonization
?? ??Sequential pairings can lead to inconsistent (i.e. non watertight) results!
Polygonization
0
?? ?
e
0
1
1
1
11
11
We stitch unsealed iso-edges in a canonical manner by defining the twin of an iso-vertex:
e
v
vv
Polygonization
0
?? ?
e
0
1
1
1
11
11 v
We stitch unsealed iso-edges in a canonical manner by defining the twin of an iso-vertex:
An iso-vertex ve is unsealed if the path from vto e passes through a 0-labeled node.
e
vv
Polygonization
0
?? ?
e
0
1
1
1
11
11 v
We stitch unsealed iso-edges in a canonical manner by defining the twin of an iso-vertex:
An iso-vertex ve is unsealed if the path from vto e passes through a 0-labeled node.
The other child of the 0-labeled nodealso defines an unsealed iso-vertex.
v’
e
vv
v’v’
Polygonization
0
?? ?
e
0
1
1
1
11
11 v
We stitch unsealed iso-edges in a canonical manner by defining the twin of an iso-vertex:
An iso-vertex ve is unsealed if the path from vto e passes through a 0-labeled node.
The other child of the 0-labeled nodealso defines an unsealed iso-vertex.
v’
e
vv
v’v’
For octrees, this type of pairing always leads to consistent (i.e. watertight) polygonization!
Outline
Introduction Related Work Approach
Edge-Trees (Polygonization) Triangulation
Evaluation Conclusion
Triangulation
To obtain a triangulated surface, we need to triangulate the leaf octants’ iso-polygons.
Triangulation
Challenge:In general, triangulating a 3D polygon is both open and hard [Barequet et al. ’98]:Open: Determining if it can be triangulated
requires determining if it’s knotted.Hard: Even if it can be, this may require
introducing exponentially many new vertices.
Triangulation
Observation:The polygon is on the surface of a convex solid.
Triangulation
Observation:The polygon is on the surface of a convex solid.
Minimal Surfaces [Meeks and Yau ’80]:A minimal area surface of a simple closed curve on the surface of a convex solid is embedded.
Triangulation
Observation:The polygon is on the surface of a convex solid.
Minimal Surfaces [Meeks and Yau ’80]:A minimal area surface of a simple closed curve on the surface of a convex solid is embedded.
Approach:Triangulate the polygonization by computing the minimal area triangulation [Barequet et al. ’95].
Outline
Introduction Related Work Approach Evaluation Conclusion
Evaluation
To evaluate the extraction method, we used an octree to adaptively sample the EDT of a mesh and thenextracted thezero-crossingisosurface.
1,150,915 Vertices2,301,826 Triangles
139,211 Vertices106,717 Polygons
Evaluation (Restricted Octrees)
Previous work addresses the problem by restricting the depth disparity between adjacent leaf octants [Westermann et al. ’99].
Unrestricted Tree Restricted Tree
Evaluation (Restricted Octrees)
68,572 Vertices 58,876 Polygons
64,639 Vertices 53,304 Polygons
Original Simplified(Restricted)
Simplified(Unrestricted)
173,974 Vertices345,944 Triangles
Evaluation (Restricted Octrees)
68,572 Vertices 58,876 Polygons181,161 Nodes
64,639 Vertices 53,304 Polygons106,745 Nodes
Original Simplified(Restricted)
Simplified(Unrestricted)
173,974 Vertices345,944 Triangles
Evaluation (Restricted Octrees)
68,572 Vertices 58,876 Polygons181,161 Nodes
64,639 Vertices 53,304 Polygons106,745 Nodes
Original Simplified(Restricted)
Simplified(Unrestricted)
173,974 Vertices345,944 Triangles
Evaluation (Restricted Octrees)
145,829 Vertices125,858 Polygons380,681 Nodes
128,146 Vertices104,868 Polygons205,617 Nodes
Original Simplified(Restricted)
Simplified(Unrestricted)
543,652 Vertices1,087,716 Triangles
Evaluation (Restricted Octrees)
145,829 Vertices125,858 Polygons380,681 Nodes
128,146 Vertices104,868 Polygons205,617 Nodes
Original Simplified(Restricted)
Simplified(Unrestricted)
543,652 Vertices1,087,716 Triangles
Outline
Introduction Related Work Approach Evaluation Conclusion
Contribution
We have shown that an octree defines a set of binary edge-trees that provide a solution to the surface extraction problem:
Contribution
We have shown that an octree defines a set of binary edge-trees that provide a solution to the surface extraction problem:
We walk down the tree to defineiso-vertex positions consistently 1
00 1
e
1
1
11 0
e
e’
Contribution
We have shown that an octree defines a set of binary edge-trees that provide a solution to the surface extraction problem:
We walk up an then down thetree to stitch up iso-polygons
0
?? ?
e
0
1
1
1
11
11 v
v’
e
vv
v’v’
Conclusion
Using the edge-trees, we can extract a watertight isosurface in a local manner:
For arbitrary tree topology/values Without knowing the original implicit function Independent of the isovalue
871,414 Triangles 73,164 Polygons 181,052 Triangles
Thank You!
http://www.cs.jhu.edu/~misha/Code/IsoOctree/