Presentation is loading. Please wait.

Presentation is loading. Please wait.

FiberMesh: Designing Freeform Surfaces with 3D Curves

Similar presentations


Presentation on theme: "FiberMesh: Designing Freeform Surfaces with 3D Curves"— Presentation transcript:

1 FiberMesh: Designing Freeform Surfaces with 3D Curves
Andrew Nealen Takeo Igarashi Olga Sorkine Marc Alexa TU Berlin The University of Tokyo

2 Problem Statement 3D modeling from scratch is difficult
Parametric patches Subdivision surfaces Initial patch layout can be tedious Sketching Produces simple, rough models Lets start with the problem statement 3D modeling from scratch is still an inherently difficult tast [click] Most professional modeling tools use parametric patches or subdivision surfaces, which are great for local detail editing deformation. Yet, when speaking to modelers, they will often agree, that the initial patch layout can be rather tedious [click] Sketching 3D shapes has been very popular in research for the past decade, but the models are often simple, and the tools do not incorporate more detailed modeling after the initial shape has been created [click]

3 We Try to Fill the Gap 3D modeling from scratch is difficult
Parametric patches Subdivision surfaces Initial patch layout can be tedious Sketching Produces simple, rough models In our work, we try to fill this gap: we like the simplicity of sketch based modeling, especially for initial model creation, but want to add a flexible tool, with which the initial shape can be modified after its creation [click]

4 Inspirations Sketch-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] That said, our main inspirations are drawn from the area of setch based modeling Early work in this field was presented by williams in form of 3D paint [click] The SKETCH tool of Zeleznik and co-workers already contained gestural strokes for models with rotational symmetry [click] While the popular TEDDY system enabled the creation of freeform shapes by sketching silhouettes [click] This interface principle was extended to variational implicits and so-called blob trees by Karpenko and Schmidt, and these two tools have various post-creation editing mechanisms, such as silhouette oversketching [click] And last year we were introduced to Karpenko and Huges‘ SmoothSketch, which is a system for single view modeling of a shape with a potentially complex silhouette [click]

5 FiberMesh Overview 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 To give a brief overview of our main contributions... We use curves as our main user interface. What does this mean? Well, first off, any sketch the user places, whether for model creation or modification is PERSISTENT and can be used as a modeling handle in subsequent steps [click] Also, these curves are topologically flexible, meaning they can be added anywhere at anytime with any connectivity [click] We also introduce a fast (discrete) surface reconstruction method, which generates a smooth surface that incorporates the curve constraints, and runs at interactive rates [click]

6 FiberMesh Demo And to illustrate what this all means, Takeo will give a live demo of FiberMesh [click]

7 Please see paper for details...
Algorithm Overview 3D curve deformation Surface optimization Please see paper for details... Handle position Curve geometry Ok, on to the algorithm... We start with the 3D curve deformation [click] Given a curve, a handle position... [click] ...and a new handle position, we compute a smooth curve geometry which interpolates the new handle [click] now for the surface optimization, once we have the geometry of our curve network [click] we compute a smooth surface which interpolates the curve network. [click] for the curve deformation, please see details in our paper [click] Curve geometry Surface geometry

8 Surface Optimization ? What is surface opimization?
[click] once the user places an initial sketch, we generate a mesh topology, seen here from two orthogonal views [click] and then we adjust the mesh geometry, subject to the curve constraints, such that the surface minimizes some energy. in our case, an approximation of minimal curvature variation, thus producing the smooth surface you see on the right [click]

9 Inspirations Curve 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“ ? The main inspirations for our surface optimization are from the early 90s Specifically, moreton and sequin had a series of work on minimal energy networks, which are smooth bezier curve networks from user provided piecewise linear representations [click] and year later they showed how to fit bezier patches to these curve networks [click] concurrently, welch and witkin developed variational surface modeling, fitting smooth b-spline patches to curve constraints [click] and later switched to a discrete triangle mesh representation, while applying variational principles to generate smooth surfaces [click] what defines smooth ? all the above methods boil down to generating a surface, which solves the following partial differential equation [click]

10 Inspirations Curve 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“ ? this differential equation involves some power of the laplacian operator, defined continuously, or discretely, on the surface [click]

11 Surface Optimization Discrete Differential Geometry
vi b a We make use of recent developments in discrete differential geometry. Specifically, we set target values for certain discrete quantities so i will briefly outline the principles we apply [click] vj See work from Polthier, Desbrun, Meyer, Alliez, Grinspun, Schröder, etc.

12 Surface Optimization Discrete Differential Geometry
vi Laplacian operators Uniform Laplacian Lu(vi) Cotangent Laplacian Lc(vi) Mean curvature normal b Given a single vertex v_i and its 1-ring, there are various Laplacian operators we can apply These operators can be applied to any scalar field defined on the vertices In the following slides, I will apply them to the vertex coordinate fields x,y and z, resulting in 3-vectors [click] The simplest operator is the uniform Laplacian, which is the center vertex, minus the average of the neighbors or, in other words, the weight of each neighbor is one over the vertex degree this operator has the advantage, that it only relies on the connectivity, not the geometry of the mesh [click] The cotangent laplacian operator generates a vertex, which, even for irregularly sampled meshes, points in normal direction. But, since the neighbor vertex weights depend on angles in the 1-ring, this operator is geometry dependent [click] if we furthermore scale the laplacian vector by the inverse of an area estimate around the vertex, [click] we obtain the mean curvature normal, whose length equals discrete mean curvature at vertex v_i [click] a vj Ai

13 Surface Optimization Two Important Observations !
vi 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 lengths Uniform ≈ Cotangent b Two important observations [click] the cotangent Laplacian is equal to the mean curvature normal times the vertex area, which is why some refer to it as the „integrated mean curvature“ [click] and more importantly, for nearly equal edge lengths in a 1-ring, the geometry independet uniform laplacian is a viable approximation of the cotangent laplacian [click] a vj Ai

14 Surface Optimization Two Important Observations !
vi 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 lengths Uniform ≈ Cotangent b as you can see here we will be using these observations in our approximations [click] a vj Ai

15 Surface Optimization Linear- 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 On to the surface optimization... The 1st thing we tried, since they are known to be fast, is to try out linear variational methods, where the mesh geometry results from the solution to a single sparse linear system [click] now, in our setting, the initial user sketch is always planar, and since linear variational methods compute geometry as an affine combnation of the boundary constraints, which in this case is the planar curve, [click] the geometry degenerates to a plane [click] Instead we chose to implement -- and speed up -- nonlinear optimization, which solves a nonlinear partial differential equation on the surface, using stepwise linearization and iteration [click] our algorithm is a variant of a discrete fairing algorithm, presented by schneider and kobbelt in 2002 [click]

16 Surface Optimization Overview of a Single Step
Current curvatures (scalar) Unit normals Target curvatures (scalar) = c ∙ n Diffusion (smoothing) Scale unit normal vectors Positional constraints Iterate vertex positions Current geometry Resulting geometry Target mean curvature normals To illustrate a single step of their algorithm, given a current geometry [click] first they compute scalar mean curvature [click] then smooth out – or diffuse -- these curvatures over the mesh, and here you see where the „minimizing curvature variation“ comes into play anyway, this gives us target scalar mean curvatures [click] then they compute a unit normal field from the current geometry [click] and scale the unit normal vectors... [click] ... with he target cuvatures... [click] ... Resulting in target mean curvature normals [click] finally, given positional constraints... [click] ... they iterate vertex positions along the normals one-by-one, until they satistfy the target mean curvature normals [click] for the laplacian smoothing step they solve a linear system, with a sparse matrix which encodes the cotangent weights [click] since the geomety changes is each step, this matrix needs to be recomputed, which is slow [click] also, the iterative procedure is not designed for interactive response since speed is an issue in our tool, we had to remove these bottlenecks [click] = c Lc Linear system But: matrix recomputation Iterative procedure not designed for interactive response

17 Surface Optimization Our Optimizations and Approximations
Current curvatures (scalar) Target curvatures (scalar) = c ∙ n Diffusion (smoothing) Scale unit normal vectors Positional constraints Current geometry Resulting geometry Iterate vertex positions Target mean curvature normals Our approximations in the diffusion step, we replace the cotangent laplacian with the uniform laplacian [click] this way,we can reuse the matrix, and its factorization, throughout all iteration steps [click] c Linear system Reuse matrix factorization Lu =

18 Surface Optimization Our Optimizations and Approximations
Current curvatures (scalar) Target curvatures (scalar) = c ∙ n Diffusion (smoothing) Scale unit normal vectors Positional constraints Current geometry Resulting geometry Solve least squares Target mean curvature normals and in the second step, we solve a global least squares system for unknown positions x [click] so that we can reuse the matrix factorization here too, we also use the uniform laplacian discretization yet, which laplacian vector do we set this equal to? a few slides ago i mentioned that under certain circumstances, the uniform laplacian is a good approximation of the cotangent laplacian [click] c Linear system Reuse matrix factorization Lu = x ? Lu =

19 Surface Optimization Our Optimizations and Approximations
Current curvatures (scalar) Target curvatures (scalar) = c ∙ n Diffusion (smoothing) Scale unit normal vectors Positional constraints Current geometry Resulting geometry Solve least squares Target mean curvature normals and we can compute the cotangent laplacian from the mean curvature normal, simply by multiplying by the area estimate [click] c Linear system Reuse matrix factorization Lu = x dc Lu =

20 Surface Optimization Our Optimizations and Approximations
Current curvatures (scalar) Target curvatures (scalar) = c ∙ n ∙ A Diffusion (smoothing) Scale unit normal vectors Positional constraints Current geometry Resulting geometry Solve least squares Target cotan Laplacians = dc [click] resulting in target cotangent laplacian vectors [click] c Linear system Reuse matrix factorization Lu = x dc Lu =

21 Surface Optimization Requirements for our Approximations
We replace Lc with Lu in both steps This a viable approximation for: vi vj a b Now, we replace Lc with Lu in both steps, which is generally not a good idea for irregularly sampled meshes [click] but, we can get away with this if [click]

22 Surface Optimization Requirements 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 vi vj a b we have nearly equal edge lengths [click] and also, nearly equal vertex areas

23 Surface Optimization How to Enforce (A) and (B)
Setting Lu(x) equal to dc improves inner fairness Smooth the edge lengths Constrain edge vectors x dc Lu = [Nealen et al. 2006] So how do we enforce these properties? And more importantly, how do we incorporate it into the realtime optimization? for one, solving for new uniform laplacians, such that they approximate vectors in normal direction automatically improves inner fairness by tangential smoothing [click] solving the system for the center vertex if this 1-ring [click] ... Inproves inner fairness [click] ... As we show in a previous publication we have found that this does not suffice near the curve constraints, so additionally, [click] we smooth the scalar edge lengths [click] and use these smoothed edge lengths to constrain edge vectors in the LS system [click]

24 Surface Optimization Adding Edge Vector Constraints to LS
Current curvatures (scalar) Target curvatures (scalar) = c ∙ n ∙ A Diffusion (smoothing) Positional constraints Current geometry Resulting geometry Solve least squares Scale vectors Target dc Going back to the diagram, additionally to the previously outlined steps [click] we compute the current edge lengths, [click] smooth these edge lengths over the entire mesh [click] resulting in smoothly varying target scalar edge lengths [click] then, given unit edge vectors from the current geometry, [click] we scale these by the target edge lengths, resulting in target edge vectors [click] which we add as linear constraints to the global least squares problem [click] Current edge lengths (scalar) Target edge lengths (scalar) Unit edge vectors Target edge vectors

25 Surface Optimization A Single Step of our Optimization
Current curvatures (scalar) Target curvatures (scalar) = c ∙ n ∙ A Diffusion (smoothing) Positional constraints Current geometry Resulting geometry Solve least squares Scale vectors Target dc And what you see here is a single step of our nonlinear optimization iterating this algorithm 3-5 times converges nicely for all our meshes Current edge lengths (scalar) Target edge lengths (scalar) Target edge vectors

26 Results

27 15 min intructions + 20 minutes tryout
Results Novice User 15 min intructions + 20 minutes tryout

28 15 min intructions + 10 minutes tryout
Results 2D Artist 15 min intructions + 10 minutes tryout

29 Results 2D Artist minutes tryout

30 Results Base Model Creation

31 Discussion To be Improved...
Takes a bit to learn the interface operations and their combinations Larger meshes would be nice Perhaps „freeze“ part of the mesh In general: entire mesh is optimized Multigrid / Multiresolution acceleration techniques Add more intuitive modeling operations: symmetry, vertex snapping, merging, etc.

32 Discussion Summary 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

33 Thank You ! Andrew Nealen Takeo Igarashi Olga Sorkine Marc Alexa
Download our demo!  Andrew Nealen Takeo Igarashi Olga Sorkine Marc Alexa TU Berlin The University of Tokyo

34 Ideas Summary Use uniform edge lengths Use “alpha” edge adding
Sketch onto occluded shapes Allow “intrusions” and not only “extrusions


Download ppt "FiberMesh: Designing Freeform Surfaces with 3D Curves"

Similar presentations


Ads by Google