Title: Gokul Varadhan
1Feature-Sensitive Subdivision and Isosurface
Reconstruction
Dinesh Manocha
University of North Carolina at Chapel Hill
Shankar Krishnan AT T Labs
Young J. Kim Ewha University
http//gamma.cs.unc.edu/recons
2Implicit Surface Representation
- Common in computer graphics and geometric
modeling - Represent the object with a implicit function
f(p) where p is a point
3Distance Function
- f(p) measures the distance between p and the
surface of the object
f(p)
p
4Geometry Processing
Boolean operations (union, intersection)
Offset
5Overall Approach
- Subdivision
- Generate a voxel grid and compute signed distance
at the grid points - Geometric operation (union/intersection),
corresponds to an algebraic operation (min/max) - Isosurface Reconstruction
- Extract an isosurface from the resulting distance
field
6Issues
- Accuracy depends upon
- Choice of isosurface reconstruction algorithm
- Rate of sampling, i.e., resolution of the
underlying grid
7Unwanted Handles
Thin Features
CAD Model 8 Boolean operations
Marching Cubes 64 x 64 x 64
8Issues
- Final surface has lots of sharp features
- We would like to reconstruct them faithfully
9Multiple Sharp Features
10Our Goal
- Reconstruct thin features without creating
unwanted handles - Reconstruct all the sharp features and prevent
aliasing
11Previous Work
- Isosurface Reconstruction
- Sampling
12Previous Work Isosurface Reconstruction
- Marching Cubes Lorenzen Cline 1987
- Discretized Marching Cubes Montani et al. 1994
- Sharp Features
- Extended Marching Cubes Kobbelt et al. 2001
- Dual Contouring Ju et al. 2002
- Optimization Ohtake et al. 2001
- Topology simplification and control Wood et al.
2002, Bischoff Kobbelt 2002
13Previous Work Sampling
- Adaptive grids Wilhelms Gelder 1992, Shekhar
et al. 1996, Frisken et al. 2000
14Issues
- Choice of isosurface reconstruction algorithm?
15Dual Contouring
- 1. For each cell that exhibits a sign change,
generate an error-minimizing vertex
16Dual Contouring
- 2. For each edge that exhibits a sign change,
connect the minimizing vertices of the cells
sharing that edge
A
C
B
17Problems
- Unwanted handles due to thin features
- Aliasing due to sharp features
18Thin Features
A
B
A
B
C
D
C
D
19Unwanted Handles
CAD Model 8 Boolean operations
Dual Contouring 64 x 64 x 64
20Problems
- Unwanted handles due to thin features
- Aliasing due to sharp features
21Sharp Features
- Intersecting surfaces ? sharp features
22Sharp Features
- Multiple sharp features within a cell
23Aliasing
- Occurs when sharp features are close to each other
24Main Results
- Reconstruct thin features without creating
unwanted handles - Reconstruct all the sharp features and prevent
aliasing
Extended Dual Contouring
Feature-Sensitive Subdivision
25Outline
- Extended Dual Contouring
- Feature-Sensitive Subdivision
- Results
26Complex Edges
- An edge is complex if
- It is intersecting
- Does not exhibit a sign change
- Complex edges arise in the vicinity of thin
features - They result in unwanted handles
A
B
C
D
27Detecting complex edges
- Test if an edge is intersecting and check the
signs at its endpoints - Need a reliable test for edge intersection
28Reliable Edge-Intersection Test
A
B
AB is intersecting iff D AB (A) lt AB where
D v (p) Directed distance at p along direction
vector v
C
D
29Handling complex edges
- Approach 1 Subdivide grid cells with complex
edges - Accurate
- Can result in excessive grid refinement and
reduce performance - Approach 2 Modify the reconstruction algorithm
to handle complex edges - Extended Dual Contouring
30Extended Dual Contouring
Enumerate intersection points
Component Separation
Compute minimizing vertices
Connect minimizing vertices
31Extended Dual Contouring
Use edge-intersection test to enumerate all
the intersection points
Enumerate intersection points
Component Separation
Compute minimizing vertices
Connect minimizing vertices
32Extended Dual Contouring
Enumerate intersection points
Separate the set of intersection points into
different components
Component Separation
Compute minimizing vertices
Connect minimizing vertices
33Extended Dual Contouring
Enumerate intersection points
Component Separation
Compute minimizing vertex for each
component independently
Compute minimizing vertices
Connect minimizing vertices
34Extended Dual Contouring
Enumerate intersection points
Component Separation
Compute minimizing vertices
Connect minimizing vertices of adjacent cells
Connect minimizing vertices
35Step 1 Enumerate Intersection Points
I i1 , i2 , i3 , i4
A
B
E
i2
i1
i4
i3
F
C
D
36Extended Dual Contouring
Enumerate intersection points
Separate the set of intersection points into
different components
Component Separation
Compute minimizing vertices
Connect minimizing vertices
37Step 2 Component Separation
- Two intersection points i, j ? I belong to the
same connected component,
If and only if we can walk from i to j along
the edges of the cell and stay outside at all
times
38Step 2 Component Separation
Components i1 , i2, i3 , i4
A
B
E
i1
i2
i4
i3
F
C
D
39Step 2 Component Separation
- Guessing the local topology
- Does not guarantee correct topology
40Extended Dual Contouring
Enumerate intersection points
Component Separation
Compute minimizing vertex for each
component independently
Compute minimizing vertices
Connect minimizing vertices
41Step 3 Compute Minimizing Vertices
Components i1 , i2, i3 , i4
B
E
A
i1
i2
i3
i4
F
D
C
42Extended Dual Contouring
Enumerate intersection points
Component Separation
Compute minimizing vertices
Connect minimizing vertices of adjacent cells
Connect minimizing vertices
43Step 4 Connecting minimizing vertices
- Need to take into account
- An edge can have upto two intersection points
- A cell can have multiple minimizing vertices
44Step 4 Connecting minimizing vertices
- For each intersecting edge
- For each of upto two intersection points
- Connect the minimizing vertices in the adjacent
cells that are associated with the intersection
point
45Step 4 Connecting minimizing vertices
B
E
A
i2
M1
M2
i3
M4
M3
F
D
C
46Extended Dual Contouring
B
E
A
F
D
C
47 Comparison with Dual Contouring
8 Boolean operations
Dual Contouring
Extended Dual Contouring
64x64x64
64x64x64
48 Aliasing due to Sharp Features
49Outline
- Extended Dual Contouring
- Feature-Sensitive Subdivision
- Results
50Sharp Features
- Why do sharp features arise?
- Booleans correspond to performing min and max
operations on the distance fields of the
primitives - Both f1 and f2 may be smooth, but min(f1, f2) may
not
51Signal Processing Overview
f1
f2
min(f1, f2)
52Signal Processing Overview
f1
f2
min(f1, f2)
f1-f2
sgn(f1-f2)
53Bisector Test
- Sharp feature corresponds to the zero crossing of
f1-f2 - Detect the bisector surface (f1-f2 0) in each
cell
54Bisector Test
- Observe for sign change of f1-f2 along the edges
of the cell
55Bisector Test
f1-f20
A
B
f1-f2gt0
f1-f2lt0
f2 gt 0
f1 gt 0
f1 lt 0
f2 lt 0
56Feature-Sensitive Subdivision
- Multiple Sharp Features
- Estimate the number of sharp features for each
cell and subdivide if it is greater than one
57Feature-Sensitive Subdivision
- Example f min (f1, f2 )
- Num-Sharp(f, Cell C) Num-Sharp(f1, C)
-
Num-Sharp(f2, C) -
Bisector-Test(f1, f2,C) - Bisector-Test(f1, f2,C) 1 if f1 f2 passes
-
through C - 0
otherwise
58Bisector Test
f1-f20
f1-f20
f1 lt 0
f2 lt 0
59Sharp Features
Ext Dual Contouring with subdivision
Ext Dual Contouring without subdivision
60 Sharp Features
8 Boolean operations
Ext Dual Contouring without Subdivision
Ext Dual Contouring with Subdivision
313K voxels
643 262 K voxels
61Comparison with Dual Contouring
Dual Contouring
Extended Dual Contouring
62Comparison with Dual Contouring
Dual Contouring
Extended Dual Contouring
63Applications
- Boundary evaluation of complex CAD models
- Offset computation
- Polygonization of general implicit models
64Drivewheel
Turret
30 solids 2-7 Boolean operations per solid
41 solids 2-19 Boolean operations per solid
65Hull
36 solids 2-12 Boolean operations per solid
66Bradley Fighting Vehicle
1296 solids 8,456 Booleans 2-20 Booleans per solid
67Bradley Fighting Vehicle
1296 solids 8,456 Booleans 2-20 Booleans per solid
68Timings
- 1.6 GHz Pentium IV, GeForce 3 graphics card, 512
MB main memory - 3.5 hours for the entire Bradley Model
- 12-15 secs per solid
- Most of the time (10-12 secs) spent on distance
computation
69Performance Comparison
Extended Dual Contouring is 15 slower
70Feature-Sensitive Subdivision
3.5x105
Number of Voxels
Total
64
256
512
128
Level of Subdivision
71Offset Computation
Spoon Union of 25 convex pieces 13 secs
72Polygonization of Implicit Models
Sixth order polynomial
2(x2y2z2-1)3 (0.1x2 y2)z30
73Limitations
- Extended Dual Contouring
- In some cases, can result in self intersections
- Cant reconstruct needle-like features where
surface doesnt intersect edges of the cell - Feature-Sensitive Subdivision
- Overly conservative
74Main Results
- Extended Dual Contouring
- Can reconstruct arbitrarily thin features
- Avoids creation of handles
- Little additional overhead
- Feature-Sensitive Subdivision
- Able to reconstruct sharp features
- Avoid aliasing artifacts
75Conclusion
- Application to a CAD model with 8000 Boolean
operations - Offsets
- Polygonization of implicit models
76Ongoing Future Work
- A more general feature-sensitive subdivision
algorithm - Good approximation algorithms for arrangement
(envelope) computation - Minkowski sum and application to motion planning
- Swept volume Kim et al. 2003
77Acknowledgements
- Joe Warren and Scot Schaefer for dual contouring
code - Members of UNC GAMMA group
78Acknowledgements
- ARO Contract DAAD 19-99-1-0162
- NSF Awards ACI-9876914, ACI-0118743
- ONR Contracts N00014-01-1-0067
- Intel Corporation
79Thank you!
80A
B
E
F
C
D
81A
B
E
F
C
D
82Step 2 Component Separation
- Define a parent for each intersection point
- Outside grid point that defines the intersection
point - Parent set P A, B, C, D
- Equivalently, separate parent set into components
83Offset Computation
- Offset of a surface is defined by taking a fixed
offset along the normal direction at each point
and computing the envelope of the resulting set
of points. - Can be posed as union problem
- Decompose the object into convex pieces
- Compute Minkowski sum of each convex piece with a
sphere - Compute the union of the convex Minkowski sums
84Results
26 solids 2-10 Boolean operations per solid
3 Boolean operations on tori