FiberMesh: Designing Freeform Surfaces with 3D Curves

Preview:

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

Citation preview

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

Recommended