![Page 1: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/1.jpg)
Marching Cubes
A High Resolution 3D Surface Construction Algorithm
![Page 2: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/2.jpg)
Slice Data to Volumetric Data(1)
![Page 3: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/3.jpg)
Slice Data to Volumetric Data(2)
![Page 4: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/4.jpg)
Marching 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
![Page 5: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/5.jpg)
Cube
Consider a cube defined by 8 data values, 4 from slice k, and another 4 from slice k+1
![Page 6: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/6.jpg)
Classify each vertex
Label 1 or 0 as to whether it lies inside or outside the surface
Match!!!
0
1
0
1
1
00
0
![Page 7: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/7.jpg)
Build an indexCreate an index of 8 bits from the binary labeling of each vertex.
![Page 8: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/8.jpg)
Get edge list
Give an index, store a list of edges.
Because symmetry : 256/2=128rotation : 128/8=16
256 cases are reduced to 14 cases.
![Page 9: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/9.jpg)
Interpolate triangle vertices
X = i +
i i+1Xi i+1X
= 20
= 10
iso_value=18 iso_value=14
(iso_value - D(i))
(D(i+1) - D(i))
![Page 10: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/10.jpg)
Problems about MC
Empty cells 30-70% of isosurface generation time wa
s spent in examining empty cells. Speed
Ambiguity
![Page 11: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/11.jpg)
The Asymptotic Decider
Resolving the Ambiguity in Marching Cubes
![Page 12: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/12.jpg)
Ambiguity Problem (1) Ambiguous Face : a face that has two diagonally o
ppsed points with the same sign
+
+
![Page 13: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/13.jpg)
Ambiguity Problem (2) Certain Marching Cubes cases have more than
one possible triangulation.
Case 6 Case 3
Mismatch!!!
+
+
+
+
Hole!
![Page 14: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/14.jpg)
Ambiguity Problem (3) To fix it …
Case 6 Case 3 B
Match!!!
+
+
+
+
The goal is to come up with a consistent triangulation
![Page 15: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/15.jpg)
Asymptotic Decider (1) Based on bilinear interpolation over
faces
B01
B00 B10
B11
(s,t)
B(s,t) = (1-s, s) B00 B01B10 B11
1-t t
The contour curves of B:
{(s,t) | B(s,t) = } are hyperbolas
= B00(1- s)(1- t) + B10(s)(1- t) +
B01(1- s)(t) + B11(s)(t)
![Page 16: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/16.jpg)
Asymptotic Decider (2)
(0,0)
(1,1)
Asymptote
(ST
If B(ST >=
(ST
Not Separated
![Page 17: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/17.jpg)
Asymptotic Decider (3)
(1,1)
Asymptote
(ST
(0,0)
If B(ST <
(ST
Separated
![Page 18: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/18.jpg)
Asymptotic Decider (4)
(S1 , 1)
(ST
(S0 , 0)
S B00 - B01 B00 + B11 – B01 – B10
T B00 – B10 B00 + B11 – B01 – B10
B(ST B00 B11 + B10 B01 B00 + B11 – B01 – B10
(0 , T0)
(1 , T1)
B( S) = B( S , 1)B( 0, T) = B( 1 , T)
![Page 19: Marching Cubes A High Resolution 3D Surface Construction Algorithm](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56649d805503460f94a6439c/html5/thumbnails/19.jpg)
Asymptotic Decider (5) case 3, 6, 12, 10, 7, 13
(These are the cases with at least one ambiguious faces)