1
Iso-Surface Extraction
Image from: http://www.it.neclab.eu
Volumetric Data
3D scalar field F(x,y,z) = ?Implicit functions
ScientificSpecial effects – fog, fireReconstruction
Sampled dataTemperatureWind speed
Scanned data
Iso-Surface Extraction
Find the implicit surface
ApplicationsRender 3D dataReconstruction from point clouds
TodayMarching cubesDual marching cubes
( , , )F x y z const=
4
Marching Cubesby Lorensen & Cline
Marching Cubes
Volumetric dataValue > const (+)Value < const (-)
256 Cases for iso-surface per cube
...
Consistent on edges of cube
Marching Cubes256 cases 15 cases
InversionRotation
Polygonal approximationof Iso-surface
Marching Cubes Problems
AmbiguityHoles
Marching Cubes Ambiguity
Ambiguous Face
Separate pink
Separate blue
The Inversion Problem
Reduction from 256 to 15 cases includes inversion
The Inversion Problem
Inversion
InversionMismatch
Ambiguity Solution
256 cases 23 casesRotation onlyAlways separate same “color”
Ambiguous faces triangulated consistently
New 8 cases
Without Inversion
Match
Ambiguity Solution
מהפך
Before After
16
Dual Marching Cubesby Schaefer & Warren
Images from: “Dual Marching Cubes: Primal Contouring of Dual Grids” by Schaeffer et al.
Marching Cubes Problems
Grid not adaptiveMany polygons required to represent small features
Images from: “Dual Marching Cubes: Primal Contouring of Dual Grids” by Schaeffer et al.
Dual Marching Cubes
Build an octree
Dual Marching Cubes
Build dual vertices
Dual Marching Cubes
Build dual edges and faces
Dual Marching Cubes
Run MC on dual grid
Finding the Dual Vertices
Place dual vertex at features of signed distance function in cell
Images from: www.cs.berkeley.edu/~jrs/mesh/present/Andrews.pdf
Iso-line Distance function
Finding the Dual Vertices
Sample f and ∇f in cell
Approximate using tangent planes
Find that minimizes
( )w f x=( ) ( )( )i i iT x f x x x= ∇ −
( )w f x=
( )2
2
( )( , )
1 ( )i
i i
w T xE w x
f x−
=+ ∇
∑
Finding the Dual Vertices
f(x)
xx1
f(x1)
T1(x)
x2
f(x2)
T2(x)
( )21( )w T x−
( )22 ( )w T x−
( )2( , ) ( )i ii
E w x c w T x= −∑
w
Finding the Dual Vertices
Images from: www.cs.berkeley.edu/~jrs/mesh/present/Andrews.pdf
Build Dual Grid Connectivity
2DVertex FaceEdge Edge
3DVertex CubeEdge Face
Build Dual Grid Connectivity
Images from: “Dual Marching Cubes: Primal Contouring of Dual Grids” by Schaeffer et al.
MC on Dual Grid
Each cell is a topological cubeSome vertices might be repeated
Find edges that contain sign changes
Use MC lookup table to create topology
Dual MC vs. MC
Marching Cubes (67K poly)
Images from: “Dual Marching Cubes: Primal Contouring of Dual Grids” by Schaeffer et al.
Dual Marching Cubes (440 poly)
Dual MC vs. MC
Marching Cubes
Images from: “Dual Marching Cubes: Primal Contouring of Dual Grids” by Schaeffer et al.
Dual Marching Cubes
Some more Dual MC
Images from: “Dual Marching Cubes: Primal Contouring of Dual Grids” by Schaeffer et al.