1 / 19

Marching Cubes

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

solada
Download Presentation

Marching Cubes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Marching Cubes A High Resolution 3D Surface Construction Algorithm

  2. Slice Data to Volumetric Data(1)

  3. Slice Data to Volumetric Data(2)

  4. 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

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

  6. Classify 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.

  8. Get edge list Give an index, store a list of edges. Because symmetry: 256/2=128rotation:128/8=16256 cases are reduced to 14 cases.

  9. Interpolate triangle vertices (iso_value - D(i)) X = i + (D(i+1) - D(i)) = 20 = 10 i X i+1 i X i+1 iso_value=18 iso_value=14

  10. Problems about MC • Empty cells • 30-70% of isosurface generation time was spent in examining empty cells. • Speed • Ambiguity

  11. The Asymptotic Decider Resolving the Ambiguity in Marching Cubes

  12. Ambiguity Problem (1) • Ambiguous Face : a face that has two diagonally oppsed points with the same sign + +

  13. Ambiguity Problem (2) • Certain Marching Cubes cases have more than one possible triangulation. Mismatch!!! Hole! + + Case 6 Case 3 + +

  14. Ambiguity Problem (3) • To fix it … Match!!! + + Case 6 Case 3 B + + The goal is to come up with a consistent triangulation

  15. Asymptotic 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

  16. If B(Sa, Ta) >= a Asymptotic Decider (2) (Sa, Ta) (1,1) (0,0) (Sa, Ta) Asymptote Not Separated

  17. If B(Sa, Ta) < a Asymptotic Decider (3) (Sa, Ta) (1,1) (0,0) Asymptote (Sa, Ta) Separated

  18. Asymptotic 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)

  19. Asymptotic Decider (5) • case 3, 6, 12, 10, 7, 13 • (These are the cases with at least one ambiguious faces)

More Related