Page 1
Interactive surface reconstruction on triangle meshes with subdivision surfaces
Matthias Bein
Fraunhofer-Institut für Graphische Datenverarbeitung IGDFraunhoferstraße 564283 Darmstadt
Tel.: +49 6151 155 – 465
Email: [email protected] ://www.igd.fraunhofer.de
Page 2
07
_10
_26
_Pre
sen
tati
on
.pp
t
2
Exposure of the problem
Input: triangle mesh (scanned data)
Aim: connected control mesh for subdivision surfaces
Constraints: time, complexity, control, accuracy and more
Page 3
07
_10
_26
_Pre
sen
tati
on
.pp
t
3
Exposure of the problem
Difficulties
Holes
Varying point density
Errors
Bad triangulation
Page 4
07
_10
_26
_Pre
sen
tati
on
.pp
t
4
Related Work
Academic
Prof. Klein (primitive fitting, parametrization)
Prof. Kobbelt (quad dominant remeshing)
Page 5
07
_10
_26
_Pre
sen
tati
on
.pp
t
6
Related Work
Commercial
Geo Magic
Page 6
07
_10
_26
_Pre
sen
tati
on
.pp
t
7
Motivation
Technical models can be reconstructed pretty good
Freeform models too?
Fully automatic reconstruction is hardly possible (and not even wanted)
Human‘s shape recognition unreached
Designer‘s intention can not be predicted
Control over the reconstructed model has to be assured
Challenge: What is the minimum user interaction for surface reconstruction?
Page 7
07
_10
_26
_Pre
sen
tati
on
.pp
t
8
Idea
User picks vertices
Patch borders are extracted automatically
Points in borders are approximated automatically
Hole filling is implicit
Pick1
Pick2
Pick3
Pick4
Page 8
07
_10
_26
_Pre
sen
tati
on
.pp
t
9
Components
Principle curvature analysis
Feature recognition
Patch border alignment
Visualisation and tools
Support the user to understand the shape
Patch approximation
Patch borders need to track curvature lines for alignment
Approximate the surface inside the patch
Holes
Bad triangulation
Regular grid wanted
Page 9
07
_10
_26
_Pre
sen
tati
on
.pp
t
10
Principle Curvature Analysis
Principle Curvature Analysis
Discrete
Taubin, modifications and others
Inadequate for noisy scanned meshes
Analytic
Primitive fitting
Polynom fitting
Moving Least Squares
...
Page 10
07
_10
_26
_Pre
sen
tati
on
.pp
t
11
Our Principle Curvature Analysis
Polynom fitting in a local coordinate system
Bivariate polynom of total grade 2 or 3
Radius neighbourhood search triangulation used for neighbourhood information only
Least squares approximation
Analytic derivation of main curvature direction and values
25 seconds for 100.000 vertices (2GHz, 2GB ram)Local coordinate system with radius
Polynom surface and normal
Vertices
Main curvature 1Main curvature 2
Page 11
07
_10
_26
_Pre
sen
tati
on
.pp
t
12
Visualisation and tools
Visualisation
Main curvature direction
Scaled normals
Page 12
07
_10
_26
_Pre
sen
tati
on
.pp
t
13
Visualisation and tools
Tools
Region growing
Pick a vertex
BFS growing with constraints
Main curvature lines
Pick a vertex
Track main curvature lines
Modified shortest path
Pick two points
Search path following main curvature lines
Page 13
07
_10
_26
_Pre
sen
tati
on
.pp
t
14
Modified shortest path
Experiments with Dijkstra algorithm
Robust
Symmetric
Works with the intended user interaction
Weight every edge length
reduce its length if the edge is „good“ small angle to a main curvature direction Small angle to the current path
Surface around the edge is orientable
Prefere the main curvature direction with the lower curvature value (along an edge, not across it)
1-neighbourhood (triangulation) is not sufficient
Radius neighbourhood search
Path calculation within a second
Page 14
07
_10
_26
_Pre
sen
tati
on
.pp
t
15
Patch Approximation
Sequential in u and v direction
Input: four borders and number of segments in u and v
Analyse the patch (aspect ratio)
Calculate cutting planes and cutting curves inside the patch in u or v
Robust against holes and bad triangulations
Approximate the border curves and cutting curves in one direction => first set of controle points
Interpolate first set of control points in the other direction => final set of controle points
Reduction of the patch approximation to several curve approximations
Page 15
07
_10
_26
_Pre
sen
tati
on
.pp
t
16
B-Spline Curve Approximation
Input: set of points dk with parameters tk
B-Spline definition: c(t) = Σ Ni(t)pi
Linear equation system: dk = Σ Ni(tk)pi
D = N * P
Overestimated (# points > # control points)
Multiply with transposed N
NT * D = NT * N * P
Q = M * P
Solve this linear equation system to gain control points P
M is symmetric and positive definite => LU decomposition
Least squares approximation. Error = Σ || dk - c(tk) ||2
Catmull&Clark subdivision derived from uniform B-Splines
=> Subdivision control net with this approximation
Page 16
07
_10
_26
_Pre
sen
tati
on
.pp
t
17
Results
Whole seat
206k triangles
105k vertices
Backrest
108k triangles
57k vertices
Reconstruction
19 patches
~300 quads
7 minutes
Page 17
07
_10
_26
_Pre
sen
tati
on
.pp
t
18
Results
Vase
50k triangles
25k vertices
Reconstruction
11 patches
~150 quads
Page 18
07
_10
_26
_Pre
sen
tati
on
.pp
t
19
Results
Vase
50k triangles
25k vertices
Reconstruction
11 patches
~150 quads
Page 19
07
_10
_26
_Pre
sen
tati
on
.pp
t
20
Results
Vase
50k triangles
25k vertices
Reconstruction
11 patches
~150 quads
Page 20
07
_10
_26
_Pre
sen
tati
on
.pp
t
21
Future Work
Connecting patches and iterative reconstruction (in progress)
Error visualisation (in progress)
Refining patch approximation
Parametrize all points inside a patch
Approximate patch by solving one linear equation system
Attach semantics to features
Extrapolate parametric GML model
Page 21
07
_10
_26
_Pre
sen
tati
on
.pp
t
22
Acknowledgement
European Project Focus K3D
European Project 3D-COFORM
Volkswagen AG
AIM@SHAPE Digital Shape Workbench
Page 22
07
_10
_26
_Pre
sen
tati
on
.pp
t
23
Questions and Discussion
Thank you for listening
Feel free to ask any questions.
Suggestions for improvements welcome...