Presentation is loading. Please wait.

Presentation is loading. Please wait.

Iso-Surface extraction from red and green samples on a regular lattice

Similar presentations


Presentation on theme: "Iso-Surface extraction from red and green samples on a regular lattice"— Presentation transcript:

1 Iso-Surface extraction from red and green samples on a regular lattice
Siggraph'98 Course21: 3D Geometry Compression Iso-Surface extraction from red and green samples on a regular lattice Jarek Rossignac College of Computing Georgia Tech, Atlanta Figures provided by Toni Chica (UPC) Jarek Rossignac 1

2 Voxels and Iso-surfaces

3 The problem Regular 3D lattice of green and red samples
Build an iso-surface (manifold triangle mesh) that: Separates red and green samples Has a vertex on each stick Stick = blue axis-aligned edge joining a red and a green sample Does not cross axis-aligned lattice edges anywhere else

4 A variety of approaches
Marching cubes W. E. Lorensen and H. E. Cline. “Marching cubes: a high resolution 3D surface construction algorithm”. SIGGRAPH 21(3):163–169, 1987. Original paper with a mistake producing gaps at x-faces Many fixes have been proposed.Most use a look-up table. Marching Tetrahedra “Surface simplification and Edgebreaker compression for 2D Cel Animations”, V. Kwatra & J. Rossignac, Shape Modeling International, 2001. Split each cube into tetrahedra Sticks-faces-loops-sheets What I teach in class and you implement as a project

5 Marching Tetrahedra Decompose each cube into 5 tetrahedra
Compute iso-surface inside each tetrahedron Remove vertices on diagonals (simplification)

6 Sticks-faces-loops-sheets
Sample: red or green points of a regular axis aligned lattice Stick: x, y, or z edge joining a red and a green sample Vertex: middle of a stick Cell: cube bounded by 6 faces and 8 samples Border edge: joins 2 vertices on the boundary of a face Loop: cycle of border edges on the boundary of a cell Triangle: Interpolates 3 vertices on the a cell Sheet: Triangulated surface bounded by a loop

7 Choices How to cut an x-face? ?
Two possibilities Each yields 2 border edges How to triangulate the interior of a cell Triangulate each sheet separately Do not introduce additional vertices ?

8 Algorithm For each cell C do
For each face F of C do For each edge E of F do If E is a stick, then create a vertex V in the middle of V Create border edges joining each pair of the vertices of F When 4 vertices (x-face) chose pairing using face location (i+j+k) mod 2 where (i,j,k) is lowest vertex of F Orient border edges so that they go clockwise around green samples Build loops (cycles of oriented border edges) For each loop L do While it has more than 3 vertices do Find best vertex V (whose neighbors are closest to each other) Make an oriented triangle with its 3 neighbors Remove V from the loop Collect all oriented triangles each represented by 3 vertex locations This “triangle soup” has no connectivity information and replicated vertices Display them as individual triangles

9 Discussion We can have up to 4 loops with a total of up to 12 borders
What is the maximum number of edges in a loop? Can we guarantee a triangulation of each loop that is free of self-intersections? Can we guarantee a triangulation of the loops of each cell so that the resulting sheets do not intersect one-another? Can we avoid generating triangles on the faces of the cell?

10 Smoothing Unconstrained push/pull: Constrained push/pull:
For each vertex V, compute VA, where A is the average of its neighbors Replace each vertex V by V+VA/s Replace each vertex V by V–VA/t Repeat these 4 steps many times Initially, set t and s to be 1/4. Then play with the values and conclude Constrained push/pull: Each time you want to move V, move it to the point on the stick that is the closest to V+VA/s or top V–VA/t (depending on the phase) Closest point may lie at the end of the stick It is easiest to perform the smoothing once you have the build the Corner Table for the mesh See next lecture on how to build and process them


Download ppt "Iso-Surface extraction from red and green samples on a regular lattice"

Similar presentations


Ads by Google