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