Presentation is loading. Please wait.

Presentation is loading. Please wait.

Unconstrained Isosurface Extraction on Arbitrary Octrees

Similar presentations


Presentation on theme: "Unconstrained Isosurface Extraction on Arbitrary Octrees"— Presentation transcript:

1 Unconstrained Isosurface Extraction on Arbitrary Octrees
Michael Kazhdan, Allison Klein, Ketan Dalal, Hugues Hoppe

2 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

3 Octree Representation
To minimize the spatial/temporal complexity, the function is often sampled on an adaptive grid Popinet 2003 Kazhdan et al. 2006

4 Octree Extraction Often, in the final processing step, we would like to extract an implicit surface from the function representation.

5 Marching Cubes If the function is sampled on a regular voxel grid, we can independently triangulate each voxel.

6 Marching Cubes Although each of the voxels is triangulated independently, the mesh is always water-tight.

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

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

9 Challenges Extracting a surface by independently triangulating the leaf octants, depth-disparities can cause: Inconsistent extrapolation to edges Inconsistent iso-vertex positions

10 Challenges Extracting a surface by independently triangulating the leaf octants, depth-disparities can cause: Inconsistent extrapolation to faces Inconsistent iso-edges

11 Outline Introduction Related Work Approach Evaluation Conclusion

12 Related Work [Bloomenthal ’88]
Uses an octree representation of the EDT for adaptive surface polygonization 1,150,915 Vertices 2,301,826 Triangles 139,211 Vertices 106,717 Polygons

13 Related Work [Bloomenthal ’88]
Approach: Use finer edges to define iso-vertices.

14 Related Work [Bloomenthal ’88]
Approach: Use finer edges to define iso-vertices. Use finer faces to define iso-edges

15 Related Work [Bloomenthal ’88]
Properties: Triangles become polygons Each iso-edge is shared by two polygons

16 Related Work [Bloomenthal ’88]
Properties: Triangles become polygons Each iso-edge is shared by two polygons Watertight polygon mesh!

17 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!

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

19 Outline Introduction Related Work Approach Evaluation Conclusion
Edge-Trees (Polygonization) Triangulation Evaluation Conclusion

20 Nodes in the edge-trees
a0 The topology of the octree defines a set of binary trees: a a10 a1 a11 Nodes in the edge-trees a a0 Edges of octree nodes a1 a10 a11

21 Nodes in the edge-trees
a0 The topology of the octree defines a set of binary trees: a a10 b10 a1 b1 a11 b11 Nodes in the edge-trees a a0 Edges of octree nodes a1 b1 a10 a11 b10 b11

22 Nodes in the edge-trees
a0 b0 The topology of the octree defines a set of binary trees: a a10 b10 a1 b1 a11 b11 Nodes in the edge-trees a a0 Edges of octree nodes a1 b1 b0 a10 a11 b10 b11

23 Edge-Trees The topology of the octree defines a set of binary trees.
Given an isovalue: Can label nodes in the edge-tree (0/1). a a10 b10 a1 b1 a11 b11 a a0 a1 b1 b0 1 1 a10 a11 b10 b11 1 1 1

24 Edge-Trees a0 b0 Note: Parents’ values are determined by values of their children. Isovalue-crossing nodes/edges have exactly one child that is isovalue-crossing. a a10 b10 a1 b1 a11 b11 a a0 a1 b1 b0 1 1 a10 a11 b10 b11 1 1 1

25 Outline Introduction Related Work Approach Evaluation Conclusion
Edge-Trees (Polygonization) Iso-Vertex Consistency Polygonization Triangulation Evaluation Conclusion

26 Iso-Vertex Consistency
We define the position of an iso-vertex in terms of leaf nodes in the edge-tree. e 1 e’ 1 e 1 1 e’ 1

27 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. e 1 e e’ 1 1 1 e’ 1

28 Polygonization Observation:
Number of unsealed iso-vertices along an octant edge is even. Generate polygons by stitching pairs of unsealed iso-vertices.

29 Polygonization Challenge: With more than two unsealed iso-vertices, which pairs do we stitch together? ? ?

30 Polygonization Challenge: With more than two unsealed iso-vertices, which pairs do we stitch together? Sequential pairings can lead to inconsistent (i.e. non watertight) results! ? ?

31 Polygonization We stitch unsealed iso-edges in a canonical manner by defining the twin of an iso-vertex: e ? ? e v 1 1 1 1 1 v

32 Polygonization We stitch unsealed iso-edges in a canonical manner by defining the twin of an iso-vertex: An iso-vertex ve is unsealed if the path from v to e passes through a 0-labeled node. e ? ? e v 1 1 1 1 1 v

33 Polygonization We stitch unsealed iso-edges in a canonical manner by defining the twin of an iso-vertex: An iso-vertex ve is unsealed if the path from v to e passes through a 0-labeled node. The other child of the 0-labeled node also defines an unsealed iso-vertex. e ? ? e v v’ 1 1 1 1 v’ 1 v

34 Polygonization We stitch unsealed iso-edges in a canonical manner by defining the twin of an iso-vertex: An iso-vertex ve is unsealed if the path from v to e passes through a 0-labeled node. The other child of the 0-labeled node also defines an unsealed iso-vertex. e For octrees, this type of pairing always leads to consistent (i.e. watertight) polygonization! ? ? e v v’ 1 1 1 1 v’ 1 v

35 Outline Introduction Related Work Approach Evaluation Conclusion
Edge-Trees (Polygonization) Triangulation Evaluation Conclusion

36 Triangulation To obtain a triangulated surface, we need to triangulate the leaf octants’ iso-polygons.

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

38 Triangulation Observation: The polygon is on the surface of a convex solid.

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

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

41 Outline Introduction Related Work Approach Evaluation Conclusion

42 Evaluation To evaluate the extraction method, we used an octree to adaptively sample the EDT of a mesh and then extracted the zero-crossing isosurface. 1,150,915 Vertices 2,301,826 Triangles 139,211 Vertices 106,717 Polygons

43 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

44 Evaluation (Restricted Octrees)
Original Simplified (Restricted) Simplified (Unrestricted) 173,974 Vertices 345,944 Triangles 68,572 Vertices 58,876 Polygons 64,639 Vertices 53,304 Polygons

45 Evaluation (Restricted Octrees)
Original Simplified (Restricted) Simplified (Unrestricted) 173,974 Vertices 345,944 Triangles 68,572 Vertices 58,876 Polygons 181,161 Nodes 64,639 Vertices 53,304 Polygons 106,745 Nodes

46 Evaluation (Restricted Octrees)
Original Simplified (Restricted) Simplified (Unrestricted) 173,974 Vertices 345,944 Triangles 68,572 Vertices 58,876 Polygons 181,161 Nodes 64,639 Vertices 53,304 Polygons 106,745 Nodes

47 Evaluation (Restricted Octrees)
Original Simplified (Restricted) Simplified (Unrestricted) 543,652 Vertices 1,087,716 Triangles 145,829 Vertices 125,858 Polygons 380,681 Nodes 128,146 Vertices 104,868 Polygons 205,617 Nodes

48 Evaluation (Restricted Octrees)
Original Simplified (Restricted) Simplified (Unrestricted) 543,652 Vertices 1,087,716 Triangles 145,829 Vertices 125,858 Polygons 380,681 Nodes 128,146 Vertices 104,868 Polygons 205,617 Nodes

49 Outline Introduction Related Work Approach Evaluation Conclusion

50 Contribution We have shown that an octree defines a set of binary edge-trees that provide a solution to the surface extraction problem:

51 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 define iso-vertex positions consistently e 1 e e’ 1 1 1 1

52 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 the tree to stitch up iso-polygons e ? ? v 1 1 e 1 1 v’ v’ 1 v

53 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

54 Thank You!


Download ppt "Unconstrained Isosurface Extraction on Arbitrary Octrees"

Similar presentations


Ads by Google