FiberMesh: Designing Freeform Surfaces with 3D Curves

34
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

description

FiberMesh: Designing Freeform Surfaces with 3D Curves. Andrew Nealen Takeo Igarashi Olga Sorkine Marc Alexa. TU Berlin The University of Tokyo TU Berlin TU Berlin. Problem Statement. 3D modeling from scratch is difficult. Sketching Produces simple, rough models. Parametric patches - PowerPoint PPT Presentation

Transcript of FiberMesh: Designing Freeform Surfaces with 3D Curves

Page 1: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 2: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

Problem StatementProblem Statement

• 3D modeling from scratch is difficult

• SketchingProduces simple, rough models

• Parametric patches

• Subdivision surfaces

Initial patch layout can be tedious

Page 3: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 4: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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]

Page 5: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

• 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

Page 6: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

FiberMesh DemoFiberMesh Demo

Page 7: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

Algorithm OverviewAlgorithm Overview

• 3D curve deformation

• Surface optimization

Handle position Curve geometry

Curve geometry

Surface geometry

Please see paper for details...

Page 8: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

Surface Optimization ?Surface Optimization ?

Page 9: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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“ ?

Page 10: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 11: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

Surface OptimizationDiscrete Differential GeometrySurface OptimizationDiscrete Differential Geometry

See work from

Polthier, Desbrun, Meyer, Alliez, Grinspun, Schröder, etc.

vi

vj

Page 12: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

Surface OptimizationDiscrete Differential GeometrySurface OptimizationDiscrete Differential Geometry

• Laplacian operators

– Uniform Laplacian Lu(vi)

– Cotangent Laplacian Lc(vi)

– Mean curvature normal

vi

vj

Ai

Page 13: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 14: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 15: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 16: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 17: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 18: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 19: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 20: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 21: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

vi

vj

Surface OptimizationRequirements for our ApproximationsSurface OptimizationRequirements for our Approximations

• We replace Lc with Lu in both steps

• This a viable approximation for:

Page 22: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 23: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

• 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]

Page 24: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 25: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 26: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

ResultsResults

Page 27: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

ResultsNovice UserResultsNovice User

15 min intructions + 20 minutes tryout

Page 28: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

Results2D ArtistResults2D Artist

15 min intructions + 10 minutes tryout

Page 29: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

Results2D ArtistResults2D Artist

... + 20 minutes tryout

Page 30: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

ResultsBase Model CreationResultsBase Model Creation

Page 31: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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.

Page 32: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 33: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

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

Page 34: FiberMesh:  Designing  Freeform Surfaces with 3D Curves

IdeasSummaryIdeasSummary

• Use uniform edge lengths

• Use “alpha” edge adding

– Sketch onto occluded shapes

– Allow “intrusions” and not only “extrusions