Marching Cubes

19
Marching Cubes A High Resolution 3D Surface Construction Algorithm

description

Marching Cubes. A High Resolution 3D Surface Construction Algorithm. Slice Data to Volumetric Data(1). Slice Data to Volumetric Data(2). Marching Cube. Create cells (cubes) Classify each vertex Build an index Get edge list Based on table look-up Interpolate triangle vertices - PowerPoint PPT Presentation

Transcript of Marching Cubes

Page 1: Marching Cubes

Marching Cubes

A High Resolution 3D Surface Construction Algorithm

Page 2: Marching Cubes

Slice Data to Volumetric Data(1)

Page 3: Marching Cubes

Slice Data to Volumetric Data(2)

Page 4: Marching Cubes

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

Cube

Consider a cube defined by 8 data values, 4 from slice k, and another 4 from slice k+1

Page 6: Marching Cubes

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

Build an indexCreate an index of 8 bits from the binary labeling of each vertex.

Page 8: Marching Cubes

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

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

Problems about MC

Empty cells 30-70% of isosurface generation time wa

s spent in examining empty cells. Speed

Ambiguity

Page 11: Marching Cubes

The Asymptotic Decider

Resolving the Ambiguity in Marching Cubes

Page 12: Marching Cubes

Ambiguity Problem (1) Ambiguous Face : a face that has two diagonally o

ppsed points with the same sign

+

+

Page 13: Marching Cubes

Ambiguity Problem (2) Certain Marching Cubes cases have more than

one possible triangulation.

Case 6 Case 3

Mismatch!!!

+

+

+

+

Hole!

Page 14: Marching Cubes

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

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

Asymptotic Decider (2)

(0,0)

(1,1)

Asymptote

(ST

If B(ST >=

(ST

Not Separated

Page 17: Marching Cubes

Asymptotic Decider (3)

(1,1)

Asymptote

(ST

(0,0)

If B(ST <

(ST

Separated

Page 18: Marching Cubes

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

Asymptotic Decider (5) case 3, 6, 12, 10, 7, 13

(These are the cases with at least one ambiguious faces)