Title: Marching Cubes
1 Marching Cubes
- A High Resolution 3D Surface Construction
Algorithm
2Slice Data to Volumetric Data(1)
3Slice Data to Volumetric Data(2)
4Marching Cube
- Create cells (cubes)
- Classify each vertex
- Build an index
- Get edge list
- Based on table look-up
- Interpolate triangle vertices
- Obtain polygon list and do shading in image space
5 Cube
Consider a cube defined by 8 data values, 4
from slice k, and another 4 from slice k1
6Classify each vertex
- Label 1 or 0 as to whether it lies inside or
outside the surface
0
1
0
0
Match!!!
0
0
1
1
7 Build an index
Create an index of 8 bits from the binary
labeling of each vertex.
8Get edge list
Give an index, store a list of edges. Because
symmetry 256/2128rotation 128/816256
cases are reduced to 14 cases.
9Interpolate triangle vertices
(iso_value - D(i))
(D(i1) - D(i))
20
10
i
i1
X
i
i1
X
iso_value18
iso_value14
10Problems about MC
- Empty cells
- 30-70 of isosurface generation time was spent in
examining empty cells. - Speed
- Ambiguity
11The Asymptotic Decider
- Resolving the Ambiguity in Marching Cubes
12Ambiguity Problem (1)
- Ambiguous Face a face that has two diagonally
oppsed points with the same sign
13Ambiguity Problem (2)
- Certain Marching Cubes cases have more than one
possible triangulation.
Mismatch!!!
Hole!
Case 6
Case 3
14Ambiguity Problem (3)
Match!!!
Case 6
Case 3 B
The goal is to come up with a consistent
triangulation
15Asymptotic Decider (1)
- Based on bilinear interpolation over faces
B00 B01 B10 B11
1-t t
B11
B(s,t) (1-s, s)
B01
B00(1- s)(1- t) B10(s)(1- t) B01(1-
s)(t) B11(s)(t)
(s,t)
The contour curves of B (s,t) B(s,t) a
are hyperbolas
B00
B10
16Asymptotic Decider (2)
(Sa, Ta)
(1,1)
(0,0)
(Sa, Ta)
Asymptote
Not Separated
17Asymptotic Decider (3)
(Sa, Ta)
(1,1)
(0,0)
Asymptote
(Sa, Ta)
Separated
18Asymptotic Decider (4)
B( Sa , 0) B( Sa , 1)
(S1 , 1)
B( 0, Ta) B( 1 , Ta)
(1 , T1)
Sa B00 - B01 B00 B11
B01 B10 Ta B00 B10
B00 B11 B01 B10 B(Sa,Ta) B00 B11
B10 B01 B00 B11 B01 B10
(0 , T0)
(Sa, Ta)
(S0 , 0)
19Asymptotic Decider (5)
- case 3, 6, 12, 10, 7, 13
- (These are the cases with at least one ambiguious
faces)