# CS 284: CAGD  Lecture #20 -- Wed 11/04, 2009.

PREVIOUS < - - - - > CS 284 HOME < - - - - > CURRENT < - - - - > NEXT

# Marching Cubes

Lorensen and Klein: "Marching Cubes: A High-Resolution 3D Surface Construction Algorithm", SIGGRAPH 1987

WHAT: Converts an octree/voxel representation into a relatively smooth triangulated B-Rep.
WHY: Easier interpretation of medical scans from CT, MRI, SPECT, Ultrasound ...
HOW: For each leaf-node voxel through which the surface passes, construct one or more triangles that approximate the most likely shape of the surface in that voxel.
Determine the most likely position where a surface may cross one of the edges of the voxel using linear interpolation between voxel corners.
Also calculate the most likely normalized surface normal for each surface vertex constructed, by interpolating the gradient values at the sample points.
What can be done to enhance the efficiency of the algorithm ?  (exploit coherence)
What can be done to enhance the functionality of the algorithm ?  (Boolean operations)
What do you make of the results ?

#### Test-questions:

In what form is the original data coming in ?

How many different voxel vertex-occupancy patterns are there, if we only exclude the redundancies due to rotations and mirroring ?

What are the pro's and con's of using marching  TETRAHEDRA  instead of  CUBES ?

Under what circumstances will a very large planar face, positioned obliquely in 3D space,
be recovered as a perfectly flat collection of facets by the marching-cube algorithm ?

A nice Tutorial:  -- algorithm

Chapter 7 of Rockwood and Chambers: "Rational Curves" -- to give you some background for this paper.

T-Splines and T-NURCCs by T. Sederberg at al.

## Programming Assignment:

It is time to wrap up your genus-4 texture mapping assignment. Show me what you have been able to accomplish.

## COURSE PROJECTS:

Acquire background information, plan your path of implementation, try to get some quick and dirty tests going ...
and always keep the overall schedule in mind!

PREVIOUS < - - - - > CS 284 HOME < - - - - > CURRENT < - - - - > NEXT
Page Editor: Carlo H. Séquin