360 likes | 571 Views
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
E N D
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 • SketchingProduces simple, rough models • Parametric patches • Subdivision surfacesInitial patch layout can be tedious
We Try to Fill the Gap • 3D modeling from scratch is difficult • SketchingProduces simple, rough models • Parametric patches • Subdivision surfacesInitial patch layout can be tedious
InspirationsSketch-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]
FiberMeshOverview and Contributions • 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
Algorithm Overview Please see paper for details... • 3D curve deformation • Surface optimization Handle position Curve geometry Curve geometry Surface geometry
InspirationsCurve 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 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“ ?
Surface OptimizationDiscrete Differential Geometry vi b a vj See work from Polthier, Desbrun, Meyer, Alliez, Grinspun, Schröder, etc.
Laplacian operators Uniform Laplacian Lu(vi) Cotangent Laplacian Lc(vi) Mean curvature normal Surface OptimizationDiscrete Differential Geometry vi b a vj Ai
Laplacian operators Uniform Laplacian Lu(vi) Cotangent Laplacian Lc(vi) Mean curvature normal Cotangent Laplacian = mean curvature normal xvertex area (Ai) For nearly equal edge lengthsUniform≈ Cotangent Surface OptimizationTwo Important Observations ! vi b a vj Ai
Laplacian operators Uniform Laplacian Lu(vi) Cotangent Laplacian Lc(vi) Mean curvature normal Cotangent Laplacian = mean curvature normal xvertex area (Ai) For nearly equal edge lengthsUniform≈ Cotangent Surface OptimizationTwo Important Observations ! vi b a vj Ai
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
Current curvatures (scalar) =c ∙ n Positional constraints Scale unit normal vectors Iterate vertex positions Diffusion (smoothing) Target curvatures (scalar) Current geometry Resulting geometry c 0 = Lc Surface OptimizationOverview of a Single Step Unit normals Target mean curvature normals • Linear system • But: matrix recomputation • Iterative procedure not designed for interactive response
Current curvatures (scalar) =c ∙ n Positional constraints Scale unit normal vectors Diffusion (smoothing) Target curvatures (scalar) Current geometry Resulting geometry c 0 Surface OptimizationOur Optimizations and Approximations Iterate vertex positions Target mean curvature normals Lu • Linear system • Reuse matrix factorization =
Current curvatures (scalar) =c ∙ n Positional constraints Scale unit normal vectors Diffusion (smoothing) Target curvatures (scalar) Current geometry Resulting geometry x c 0 ? Surface OptimizationOur Optimizations and Approximations Solve least squares Target mean curvature normals Lu • Linear system • Reuse matrix factorization = Lu =
Current curvatures (scalar) =c ∙ n Positional constraints Scale unit normal vectors Diffusion (smoothing) Target curvatures (scalar) Current geometry Resulting geometry x c 0 dc Surface OptimizationOur Optimizations and Approximations Solve least squares Target mean curvature normals Lu • Linear system • Reuse matrix factorization = Lu =
Current curvatures (scalar) Positional constraints Scale unit normal vectors Diffusion (smoothing) Target curvatures (scalar) Current geometry Resulting geometry x c 0 dc Surface OptimizationOur Optimizations and Approximations =c ∙ n ∙ A Solve least squares Target cotan Laplacians = dc Lu • Linear system • Reuse matrix factorization = Lu =
vi b a vj Surface OptimizationRequirements for our Approximations • We replace Lc with Lu in both steps • This a viable approximation for:
vi b a vj Surface OptimizationRequirements for our Approximations • 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
x dc Surface OptimizationHow to Enforce (A) and (B) • Setting Lu(x) equal to dc improves inner fairness • Smooth the edge lengths • Constrain edge vectors Lu = [Nealen et al. 2006]
Current curvatures Current edge lengths (scalar) (scalar) Positional constraints Target edge lengths (scalar) Diffusion (smoothing) Target curvatures (scalar) Current geometry Resulting geometry Surface OptimizationAdding Edge Vector Constraints to LS =c ∙ n ∙ A Solve least squares Scale vectors Target dc Unit edge vectors Target edge vectors
Current curvatures Current edge lengths (scalar) (scalar) Positional constraints Target edge lengths (scalar) Diffusion (smoothing) Target curvatures (scalar) Current geometry Resulting geometry Surface OptimizationA Single Step of our Optimization =c ∙ n ∙ A Solve least squares Scale vectors Target dc Target edge vectors
ResultsNovice User 15 min intructions + 20 minutes tryout
Results2D Artist 15 min intructions + 10 minutes tryout
Results2D Artist ... + 20 minutes tryout
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.
DiscussionSummary • 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 ! Download our demo! http://www.cg.tu-berlin.de/fibermesh.html Andrew Nealen Takeo Igarashi Olga Sorkine Marc Alexa TU Berlin The University of Tokyo TU Berlin TU Berlin
IdeasSummary • Use uniform edge lengths • Use “alpha” edge adding • Sketch onto occluded shapes • Allow “intrusions” and not only “extrusions