FiberMesh: Designing Freeform Surfaces with 3D Curves
FiberMesh: Designing Freeform Surfaces with 3D Curves
TU Berlin
The University of Tokyo
TU Berlin
TU Berlin
Andrew Nealen
Takeo Igarashi
Olga Sorkine
Marc Alexa
Problem StatementProblem Statement
• 3D modeling from scratch is difficult
• SketchingProduces simple, rough models
• Parametric patches
• Subdivision surfaces
Initial patch layout can be tedious
We Try to Fill the GapWe Try to Fill the Gap
• 3D modeling from scratch is difficult
• SketchingProduces simple, rough models
• Parametric patches
• Subdivision surfaces
Initial patch layout can be tedious
InspirationsSketch-Based ModelingInspirationsSketch-Based Modeling
• 3D Paint [Williams 90]
• SKETCH [Zeleznik et al. 96]
• Teddy [Igarashi et al. 99 and 03]
• Variational implicits [Karpenko et al. 02]
• ShapeShop [Schmidt et al. 05]
• SmoothSketch [Karpenko and Hughes 06]
• Curves as the user interface
– The user‘s sketches are persistent, and used as a modeling handles
– Topologically flexible = add / remove anywhere
• Fast surface construction by (nonlinear) functional optimization
– Incorporates curve constraints
– Runs at interactive rates
FiberMeshOverview and ContributionsFiberMeshOverview and Contributions
FiberMesh DemoFiberMesh Demo
Algorithm OverviewAlgorithm Overview
• 3D curve deformation
• Surface optimization
Handle position Curve geometry
Curve geometry
Surface geometry
Please see paper for details...
Surface Optimization ?Surface Optimization ?
InspirationsCurve and Surface OptimizationInspirationsCurve and Surface Optimization
• Minimal energy networks [Moreton and Sequin1991]
• Functional optimization [Moreton and Sequin 1992]
• Variational surface modeling [Welch and Witkin 1992]
• Shape design with triangulated surfaces [Welch and Witkin 1994]
• What defines „smooth“ ?
InspirationsCurve and Surface OptimizationInspirationsCurve and Surface Optimization
• Minimal energy networks [Moreton and Sequin1991]
• Functional optimization [Moreton and Sequin 1992]
• Variational surface modeling [Welch and Witkin 1992]
• Shape design with triangulated surfaces [Welch and Witkin 1994]
• What defines „smooth“ ?
0)( xkL
Surface OptimizationDiscrete Differential GeometrySurface OptimizationDiscrete Differential Geometry
See work from
Polthier, Desbrun, Meyer, Alliez, Grinspun, Schröder, etc.
vi
vj
Surface OptimizationDiscrete Differential GeometrySurface OptimizationDiscrete Differential Geometry
• Laplacian operators
– Uniform Laplacian Lu(vi)
– Cotangent Laplacian Lc(vi)
– Mean curvature normal
vi
vj
Ai
Surface OptimizationTwo Important Observations !Surface OptimizationTwo Important Observations !
• Laplacian operators
– Uniform Laplacian Lu(vi)
– Cotangent Laplacian Lc(vi)
– Mean curvature normal
• Cotangent Laplacian = mean curvature normal x vertex area (Ai)
• For nearly equal edge lengthsUniform ≈ Cotangent
vi
vj
Ai
Surface OptimizationTwo Important Observations !Surface OptimizationTwo Important Observations !
• Laplacian operators
– Uniform Laplacian Lu(vi)
– Cotangent Laplacian Lc(vi)
– Mean curvature normal
• Cotangent Laplacian = mean curvature normal x vertex area (Ai)
• For nearly equal edge lengthsUniform ≈ Cotangent
vi
vj
Ai
Surface OptimizationLinear- or Nonlinear Optimization ?Surface OptimizationLinear- or Nonlinear Optimization ?
• Linear variational methods [Botsch and Sorkine 2007]
• Instead: nonlinear optimization
• Inspired by a discrete fairing algorithm – Geometric fairing of irregular meshes for free-form surface
design [Schneider and Kobbelt 2002]
result
Iter
ate
vert
ex
po
siti
on
s
Surface OptimizationOverview of a Single StepSurface OptimizationOverview of a Single Step
Current geometry
Current curvatures(scalar)
Target curvatures(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Sca
le u
nit
no
rmal
vec
tors
Resulting geometry
Positional constraints
• Linear system
• But: matrix recomputation
• Iterative procedure not designed for interactive response
Unit normals
Target mean
curvature
normals
= c ∙ n
=c Lc
Surface OptimizationOur Optimizations and ApproximationsSurface OptimizationOur Optimizations and Approximations
Current geometry
Current curvatures(scalar)
Target curvatures(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Resulting geometry
Positional constraints
• Linear system
• Reuse matrix factorization
Sca
le u
nit
no
rmal
vec
tors
Iter
ate
vert
ex
po
siti
on
s
Target mean
curvature
normals
= c ∙ n
=c Lu
Surface OptimizationOur Optimizations and ApproximationsSurface OptimizationOur Optimizations and Approximations
Current geometry
Current curvatures(scalar)
Target curvatures(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Resulting geometry
Positional constraints
• Linear system
• Reuse matrix factorization
So
lve
lea
st
squ
ares
Sca
le u
nit
no
rmal
vec
tors
Target mean
curvature
normals
= c ∙ n
=Lu x =c Lu
Surface OptimizationOur Optimizations and ApproximationsSurface OptimizationOur Optimizations and Approximations
Current geometry
Current curvatures(scalar)
Target curvatures(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Resulting geometry
Positional constraints
• Linear system
• Reuse matrix factorization
So
lve
lea
st
squ
ares
Sca
le u
nit
no
rmal
vec
tors
=Lu x c
Target mean
curvature
normals
= c ∙ n
=c Lu
Surface OptimizationOur Optimizations and ApproximationsSurface OptimizationOur Optimizations and Approximations
Current geometry
Current curvatures(scalar)
Target curvatures(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Resulting geometry
Positional constraints
• Linear system
• Reuse matrix factorization
So
lve
lea
st
squ
ares
Sca
le u
nit
no
rmal
vec
tors
Target cotan
Laplacians = c
= c ∙ n ∙ A
=Lu x c
=c Lu
vi
vj
Surface OptimizationRequirements for our ApproximationsSurface OptimizationRequirements for our Approximations
• We replace Lc with Lu in both steps
• This a viable approximation for:
vi
vj
• We replace Lc with Lu in both steps
• This a viable approximation for:
– (A) nearly equal edge lengths (smooth metric)
– (B) nearly equal vertex areas
Surface OptimizationRequirements for our ApproximationsSurface OptimizationRequirements for our Approximations
• Setting Lu(x) equal to c improves inner fairness
• Smooth the edge lengths
• Constrain edge vectors
Surface OptimizationHow to Enforce (A) and (B)Surface OptimizationHow to Enforce (A) and (B)
=Lu x c
[Nealen et al. 2006]
Surface OptimizationAdding Edge Vector Constraints to LSSurface OptimizationAdding Edge Vector Constraints to LS
Current geometry
Current curvatures(scalar)
Target curvatures(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Resulting geometry
Positional constraints
So
lve
lea
st
squ
ares
Sca
le v
ecto
rs
Target c
= c ∙ n ∙ A
Target edge lengths(scalar)
Current edge lengths(scalar)
Target edge vectors
Unit edge vectors
Surface OptimizationA Single Step of our OptimizationSurface OptimizationA Single Step of our Optimization
Current geometry
Current curvatures(scalar)
Target curvatures(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Resulting geometry
Positional constraints
So
lve
lea
st
squ
ares
Sca
le v
ecto
rs
Target c
= c ∙ n ∙ A
Target edge lengths(scalar)
Current edge lengths(scalar)
Target edge vectors
ResultsResults
ResultsNovice UserResultsNovice User
15 min intructions + 20 minutes tryout
Results2D ArtistResults2D Artist
15 min intructions + 10 minutes tryout
Results2D ArtistResults2D Artist
... + 20 minutes tryout
ResultsBase Model CreationResultsBase Model Creation
DiscussionTo be Improved...DiscussionTo be Improved...
• Takes a bit to learn the interface operations and their combinations
• Larger meshes would be nice
– Perhaps „freeze“ part of the meshIn general: entire mesh is optimized
– Multigrid / Multiresolution acceleration techniques
• Add more intuitive modeling operations:symmetry, vertex snapping, merging, etc.
DiscussionSummaryDiscussionSummary
• We fill the gap between sketch and detailed modeling
• Contributions:
– Curves as handles: add/remove anytime, anywhere
– Surface via nonlinear optimization
– Approximate nonlinear problem by series of linear problems
– diffuse cuvature and edge lengths to get target laplacians
– move vertices to satisfy them
• Supports skill transfer from 2D drawing to 3D modeling
Thank You !Thank You !
TU Berlin
The University of Tokyo
TU Berlin
TU Berlin
Andrew Nealen
Takeo Igarashi
Olga Sorkine
Marc Alexa
Download our demo! http://www.cg.tu-berlin.de/fibermesh.html
IdeasSummaryIdeasSummary
• Use uniform edge lengths
• Use “alpha” edge adding
– Sketch onto occluded shapes
– Allow “intrusions” and not only “extrusions