marching cubes: a high resolution 3d surface construction algorithm william e. lorenson harvey e....

25
Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and Development, SIGGRAPH 1987 Presented by Mark Blackburn, Fall 2005

Upload: harriet-riley

Post on 13-Jan-2016

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

Marching Cubes:A High Resolution 3D Surface Construction Algorithm

William E. Lorenson

Harvey E. ClineGeneral Electric Company

Corporate Research and Development, SIGGRAPH 1987

Presented by Mark Blackburn, Fall 2005

Page 2: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Organization

1. Motivation

2. Related Work

3. Information Flow

4. Algorithm

5. Short Demo

6. Results

7. Conclusion & Future Work

Page 3: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Motivation

• 3D visualization is critical to medical field

• Existing algorithms inadequate:– lack detail – may introduce artifacts

• Create polygonal representation of constant density surfaces from 3D array of data

Page 4: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Related Work

• Existing methods of 3D surface generation– Trace contours within each slice then connect with

triangles ( cf. topography map)

– Create surfaces from “cuberilles” (voxels)

– Ray casting to find the 3D surface• Use hue-lightness to shade surface

• Use gradient to shade

– Display density volumes

Page 5: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Related Work

Shortcomings of Existing Techniques• Throw away useful information in the original data

– Cuberilles: uses thresholding to represent surface

– Ray casting: uses depth shading alone or approximates shading using unnormalized gradient

• Some lack hidden surface removal– Volume models display all values and rely on motion to produce a

3D sensation

Page 6: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Related Work

• Benefits of Marching Cubes approach:– Uses all information from source data– Derives inter-slice connectivity, surface

location, and surface gradient– Result can be displayed on conventional

graphics display systems using standard rendering algorithms

Page 7: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Information Flow

Information Flow for 3D Medical Algorithms

– Data Acquisition : collect a series of 2D slices of information

– Image Processing: find structures with 3D data or filter / bin data

– Surface Construction: Create surface model of voxels or polygons

– Viewing & Display: Display the surface using ray casting, depth or color shading.

Page 8: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Algorithm Overview

The Marching Cubes Algorithm

• Consists of 3 basic steps:1. Locate the surface corresponding to a user-

specified value.

2. Create triangles.

3. Calculate normals to the surface at each vertex.

Page 9: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●Step 1:Surface Intersection

• To locate the surface, it uses a logical cube created from eight pixels (Four each from 2 adjacent layers):

Page 10: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●Step 1: Surface Intersection

• Binary vertex assignment: (p (i, j, k) >= TU ? 1: 0)– Set cube vertex to value of 1 if the data value at that

vertex exceeds (or equals) the value of the surface we are constructing

– Otherwise, set cube vertex to 0

• If a vertex = 1 then it is “inside” the surface• If a vertex = 0 then it is “outside”• Any cube with vertices of both types is

“intersected” by the surface.

Page 11: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Step 2 : Triangulation

• For each cube, we have 8 vertices with 2 possible states each (inside or outside).

• This gives us 28 possible patterns = 256 cases.

• Enumerate cases to create a LUT

• Use symmetries to reduce problem from 256 to 15 cases.

Page 12: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Step 2 : Triangulation

• Use vertex bit mask to create an index for each case based on the state of the vertexes.

• Using the index to tell which edge the surface intersects, we can then can linearly interpolate the surface intersection along the edge.

• In our previous example of green pixels, v0 and v3 were “outside” the surface and thus our index would = 11110110 = 246

Page 13: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Step 3 : Surface normals

• To calculate surface normal, we need to determine gradient vector, g (derivative of the density function).

• To estimate the gradient vector at the surface of interest, we first estimate the gradient vectors at the vertices and interpolate the gradient at the intersection.

• The gradient at cube vertex (i , j, k), is estimated using central differences along the three coordinate axes by:

D (i, j, k) is the density at pixel (i, j) in slice k.

Δx, Δy, Δz are lengths of the cube edges

Page 14: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Step 3 : Surface normals

• Dividing the gradient by its length produces the unit normal at the vertex required for rendering.

• Then the algorithm linearly interpolates this normal to the point of intersection.

Page 15: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Algorithm Summary

1. Scan 2 slices and create cube2. Calculate index for cube based on vertices3. Use index to lookup list of edges intersected4. Use densities to interpolate edge intersections5. Calculate unit normal at each edge vertex using

central differences. Interpolate normal to each triangle vertex

6. Output the triangle vertices and vertex normals7. March to next position and repeat.

Page 16: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Demo

• Short Demo / tutorial : http://www.essi.fr/~lingrand/MarchingCubes/applet.html

Page 17: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Enhancements

• Efficiency – Take advantage of pixel-to-pixel, line-to-line,

and slice-to-slice coherence by keeping previous calculations.

• Functional– Added solid modeling capability

• Boolean operations permit cutting and capping of solid models as well as multiple surface extraction.

Page 18: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Results

Bone Surface Soft Tissue Surface

Page 19: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●Results – The Visible Human

Inside skeleton view Torso / bowels

Images courtesy : Marching Through the Visible Man: http://www.essi.fr/~lingrand/MarchingCubes/accueil.html)

Page 20: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Results –The Visible Man

Page 21: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Results

Images courtesy : IF of Polytech' Nice-Sophia: http://www.essi.fr/~lingrand/MarchingCubes/accueil.html)

Human brain surface reconstructed by using marching cubes (128,984 vertices and 258,004 triangles

Magnified display of brain surface

Page 22: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Conclusion

• Marching Cubes is an algorithm for 3D surface reconstruction well suited to series of 2D medical images (slices).

• Algorithm summary ( 3 steps)1. Locate the surface corresponding to a user-specified

value using cube vertex tests

2. Create triangles based on vertex states of the cube

3. Calculate normals to the surface at each vertex.

Page 23: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Future Work

• Dividing Cubes:– An algorithm that generates points rather than triangles.

As the resolution of the data increases, the number of triangles approaches the number of pixels.

• Dual Marching Cubes– creates isosurfaces very similar to Marching cubes

surfaces, but they are comprised of quad patches that eliminate some of the problems of poorly shaped triangles that can occur in this algorithm.

Page 24: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Evaluation

• Advantages:• Uses all information from source data• Derives inter-slice connectivity, surface location, and surface

gradient• Result can be displayed on conventional graphics display

systems using standard rendering algorithms• Allows Solid modeling capability ( cutting and capping)

• Disadvantages:• Requires user input• Mainly limited to medical images with clear contiguous

intensity boundaries (constant density)• Is performing a modified form of thresholding.

Page 25: Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● References

• W. Lorensen and H. Cline. “Marching cubes: A High Resolution 3D Surface Construction Algorithm”, Proceedings of SIGGRAPH 1987, pages 163-169, 1987.

• The Visible Human: http://www.nlm.nih.gov/research/visible/visible_human.html

• Marching Cubes Demo/Tutorial: http://www.essi.fr/~lingrand/MarchingCubes/applet.html

• Nielson, Gregory M. “Dual Marching Cubes”, IEEE Visualization archive

Proceedings of the conference on Visualization '04, Pages: 489 - 496