I nterpolating and Approximating I mplicit Surfaces from Polygon Soup
Chen Shen, James F. O’Brien, Jonathan R. Shewchuk
University of California, Berkeley
Geometric Algorithms Seminar CS 468 – Fall 2005
I nterpolating and Approximating I mplicit Surfaces from Polygon - - PowerPoint PPT Presentation
I nterpolating and Approximating I mplicit Surfaces from Polygon Soup Chen Shen, James F. OBrien, Jonathan R. Shewchuk University of California, Berkeley Geometric Algorithms Seminar CS 468 Fall 2005 Overview Overview Talk Overview:
I nterpolating and Approximating I mplicit Surfaces from Polygon Soup
Chen Shen, James F. O’Brien, Jonathan R. Shewchuk
University of California, Berkeley
Geometric Algorithms Seminar CS 468 – Fall 2005
2
CS 468 – Geometric Algorithms Seminar – Fall 2005
Talk Overview:
for Polygon Soup
Talk Overview:
for Polygon Soup
3
4
CS 468 – Geometric Algorithms Seminar – Fall 2005
Goal: Convert polygon mesh into implicit surface (and back again) Applications:
from polygon soup
Goal: Convert polygon mesh into implicit surface (and back again) Applications:
from polygon soup
5
CS 468 – Geometric Algorithms Seminar – Fall 2005
Polygon models often show consistency issues:
self intersections
should be omitted Polygon models often show consistency issues:
self intersections
should be omitted
– preprocessing
6
CS 468 – Geometric Algorithms Seminar – Fall 2005
[Shen et al. 04]
Create simplified bounding volume, allowing topological changes: Useful for...
(e.g. collision detection) Create simplified bounding volume, allowing topological changes: Useful for...
(e.g. collision detection)
7
CS 468 – Geometric Algorithms Seminar – Fall 2005
Reconstruction via Implicit Surfaces:
[Turk et al. ’99], [Carr et al. ’01], [Turk et al. ’02], ...
Reconstruction via Implicit Surfaces:
[Turk et al. ’99], [Carr et al. ’01], [Turk et al. ’02], ...
This paper
8
CS 468 – Geometric Algorithms Seminar – Fall 2005
Initial data Estimate normals Signed distance func. Marching cubes Final mesh Initial data Estimate normals Signed distance func. Marching cubes Final mesh
9
CS 468 – Geometric Algorithms Seminar – Fall 2005
Initial data Estimate normals Signed distance func. Marching cubes Final mesh Initial data Estimate normals Signed distance func. Marching cubes Final mesh
10
CS 468 – Geometric Algorithms Seminar – Fall 2005
Initial data Estimate normals Signed distance func. Marching cubes Final mesh Initial data Estimate normals Signed distance func. Marching cubes Final mesh
11
CS 468 – Geometric Algorithms Seminar – Fall 2005
Initial data Estimate normals Signed distance func. Marching cubes Final mesh This paper: technique for polygon meshes Initial data Estimate normals Signed distance func. Marching cubes Final mesh This paper: technique for polygon meshes
12
CS 468 – Geometric Algorithms Seminar – Fall 2005
Initial data Estimate normals Signed distance func. Marching cubes Final mesh Initial data Estimate normals Signed distance func. Marching cubes Final mesh
13
CS 468 – Geometric Algorithms Seminar – Fall 2005
Initial data Estimate normals Signed distance func. Marching cubes Final mesh Initial data Estimate normals Signed distance func. Marching cubes Final mesh
14
CS 468 – Geometric Algorithms Seminar – Fall 2005
this step
In this paper: Defining the implicit function But: Consider polygon models
input: polygons
15
CS 468 – Geometric Algorithms Seminar – Fall 2005
Hole Filling: Create well-defined closed surface Hole Filling: Create well-defined closed surface
16
CS 468 – Geometric Algorithms Seminar – Fall 2005
Also: Remeshing (Marching Cubes)
T-vertex, small hole fixed: remeshed
17
CS 468 – Geometric Algorithms Seminar – Fall 2005
Missing Normals: Reconstruct (a few) missing normals Missing Normals: Reconstruct (a few) missing normals
? ? ?
18
19
CS 468 – Geometric Algorithms Seminar – Fall 2005
Least Squares Approximation:
target values basis functions
B1 B2 B3 pi = (xi, φi) w(x)
weighting functions least squares fit
20
CS 468 – Geometric Algorithms Seminar – Fall 2005
Least Squares Approximation:
) ( ) ( ~
1
x B c x
i n i i
=
= φ
Best Fit:
=
−
n i i i i i
x w x c
1 2
) ( ) ( ~ argmin φ φ
21
CS 468 – Geometric Algorithms Seminar – Fall 2005
2 2
W B c B W B
T T
=
Normal Equations:
φ
2 1 2
W B B W B c
T T −
=
Solution:
φ φ
2 T 1 2 T T
) ( ), ( ) ( ~ W B B W B x b c x b x
−
>= =<
Evaluation:
[ ]
n
B B b ,..., :
1
= ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − = ) ( ) ( :
1 n
x b x b B M ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ =
n
φ φ φ M
1
: ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ =
n
c c c M
1
: ) ( ) ( :
1 n
x w x w W ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = O
Notation:
22
CS 468 – Geometric Algorithms Seminar – Fall 2005
Moving Least Squares Approximation:
target values
move basis and weighting function, recompute approximation φ (x) ~
23
CS 468 – Geometric Algorithms Seminar – Fall 2005
Moving Least Squares Approximation:
target values approximation
24
CS 468 – Geometric Algorithms Seminar – Fall 2005
Approach:
function in space: f: 3 →
function should grow in normal direction
(no non-linear coord.-sys. estimation)
Approach:
function in space: f: 3 →
function should grow in normal direction
(no non-linear coord.-sys. estimation)
25
CS 468 – Geometric Algorithms Seminar – Fall 2005
Weighting Function Used in This Paper: Vary ε to adjust tightness of fit.
26
CS 468 – Geometric Algorithms Seminar – Fall 2005
Problem: Need polygonal constraints (not point constraints)
[Shen et al. 04]
27
CS 468 – Geometric Algorithms Seminar – Fall 2005
Idea: Use infinite number of points (i.e. integrate)
2 2
W B c B W B
T T
=
Normal Equations:
i N i i i N i i T i i
x b x x w x c x b x b x x w φ
= =
= ⎟ ⎠ ⎞ ⎜ ⎝ ⎛
1 2 1 2
) ( ) , ( ) ( ) ( ) ( ) , (
Can be rewritten: Sum of point constraints (Just some algebra)
28
CS 468 – Geometric Algorithms Seminar – Fall 2005
Point Constraints:
i N i i i N i i T i i
x b x x w x c x b x b x x w φ
= =
= ⎟ ⎠ ⎞ ⎜ ⎝ ⎛
1 2 1 2
) ( ) , ( ) ( ) ( ) ( ) , ( p d p b p x w x c dp p b p b p x w
k N k Poly N k Poly T
k k
φ
= =
= ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛
1 2 1 2
) ( ) , ( ) ( ) ( ) ( ) , (
Polygonal Constraints: (just integrate over all polygon points)
29
CS 468 – Geometric Algorithms Seminar – Fall 2005
First Try: First Try:
φk = 0 Result: f ≡ 0
Missing: Normal constraints Missing: Normal constraints
30
CS 468 – Geometric Algorithms Seminar – Fall 2005
Traditional Technique:
(oscillation artifacts) Here:
signed distance function in space
[Shen et al. 04]
31
CS 468 – Geometric Algorithms Seminar – Fall 2005
Basic Idea: Basic Idea:
x w(x, r)
Add additional equations, Add additional equations, f should match signed distance function: (x – pi)·ni weighted by w(polygon, x) (details not given) f should match signed distance function: (x – pi)·ni weighted by w(polygon, x) (details not given)
32
CS 468 – Geometric Algorithms Seminar – Fall 2005
With Normal Constraints: With Normal Constraints:
33
34
CS 468 – Geometric Algorithms Seminar – Fall 2005
p d p b p x w x c dp p b p b p x w
k N k Poly N k Poly T
k k
φ
= =
= ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛
1 2 1 2
) ( ) , ( ) ( ) ( ) ( ) , (
Problem: Evaluation of Integrals Normal Equations: Weighting function w(x, p) = 1/((p – x)2 + ε 2): small ε → almost singular
35
CS 468 – Geometric Algorithms Seminar – Fall 2005
Solution:
analytically
numerically using an importance sampling approach Solution:
analytically
numerically using an importance sampling approach
x
Sum of line integrals Split triangle at eval.-point Exponentially increasing spacing
x
36
CS 468 – Geometric Algorithms Seminar – Fall 2005
Computation Time:
Solution:
integral approximation
larger distance
37
CS 468 – Geometric Algorithms Seminar – Fall 2005
Data Structure:
integrals in each node (with w ≡ 1)
node diameter = λ·distance
→ constant approx. error
38
39
CS 468 – Geometric Algorithms Seminar – Fall 2005
Level-of-Detail Control:
to smooth geometry
[Shen et al. 04]
40
CS 468 – Geometric Algorithms Seminar – Fall 2005
Create Tight Bounding Volumes:
to guarantee inclusion
[Shen et al. 04]
41
CS 468 – Geometric Algorithms Seminar – Fall 2005
Preprocessing Steps: (no details given in paper)
(Standard technique: Region growing on surface)
Remove interior, invisible polygons
42
43
CS 468 – Geometric Algorithms Seminar – Fall 2005
restauration
[Shen et al. 04]
44
CS 468 – Geometric Algorithms Seminar – Fall 2005
small
ε
larger
ε
[Shen et al. 04]
45
CS 468 – Geometric Algorithms Seminar – Fall 2005
[Shen et al. 04]
46
CS 468 – Geometric Algorithms Seminar – Fall 2005
[Shen et al. 04]
47
CS 468 – Geometric Algorithms Seminar – Fall 2005
Computationally Expensive:
10 – 90 Min.
(37K polygons in, 30K – 2M vertices out)
08 – 70 Min.
(69K polygons in, 28K – 1.5M vertices out)
05 – 20 Min.
(800 polygons in, 20K – 1M vertices out)
The larger ε (less output polygons), the longer the running time (presumably due to hierarchy traversal costs)
48
49
CS 468 – Geometric Algorithms Seminar – Fall 2005
Conclusions:
via implicit function fitting
straightforward and effective idea (normals required), might also be useful for other approx.-applications
approximation)