3D Modeling techniques 0. Reconstruction From real data (not covered) 1. Procedural modeling Automatic modeling of a self-similar objects or scenes 2. Interactive modeling Provide tools to computer artists
Shape modeling: 2 viewpoints Modeling technique Shape representation Reconstruction of real objects Procedural modeling Interactive modeling Surface representation (B-Rep) Volume representation meshes parametric surfaces (splines) voxels implicit surfaces 2
Interactive Modeling Goal: enable artists to create shapes as easily as in real Quickly define a rough shape Refine it through deformations Assemble different parts Advantages of virtual design Store, undo/redo, cut, copy/paste, refine, deform, edit at any scale 3
Interactive Modeling Industrial software Maya, 3DSmax, Blender, Autocad, Catia Years of training Complex interfaces Need to understand DoF (splines, NURBS, subdivision surfaces ) Little creation through gesture: sometimes spoils creativity! 4
Interactive Modeling Practice in the industry Computers are not much used for conceptual design! [ Geri s game] Grand challenge (Rob Cook scientific director Pixar - 2008) Make tools as transparent to the artists, as the special effects were made transparent to the general public 5
Interactive modeling Good shape representation? 1. Easily create smooth shapes 2. Real-time display after each interaction 3. No restriction on the created shape Geometry: holes, branches, details Topology: any genius, allow topological changes 4. Avoid unnecessary degrees of freedom Ex: closed objects: volumes vs. surfaces 5. Allow long modeling sessions Complexity function of shape, not of user gestures! 6. Local & global, constant volume deformations 6
Main shape representations Boundary representations (surfaces) Meshes (discrete surfaces) Splines, NURBS (parametric surfaces) Subdivision & multi-resolution surfaces Volumetric representations Voxels (discrete volumes) CSG (Constructive Solid Geometry) Implicit surfaces (smooth volumes) 7
Boundary representations Meshes Explicit enumeration of faces Many required to be smooth! Smooth deformation??? Smooth surfaces Compact representation Will remain smooth After zooming After any deformation! Converted into faces for rendering Better adapted to interactive design 8
Parametric curves and surfaces Defined by a parametric equation Curve: C(u) Surface: S(u,v) u Advantages Easy to compute points v Easy to discretize Parametrization u 9
Splines curves Most important models Interpolation P 1 P 2 Hermite curves C 1, cannot be local if C 2 Cardinal spline (Catmull Rom) P 3 Approximation Bézier curves Uniform, cubic B-spline Generalization to NURBS P 1 P 2 P 3 10
11 Cubic splines: matrix equation P 1 P 2 P 3 P 4 P 4 P 2 P 3 P 1 Q i (u) = (u 3 u 2 u 1) M spline [P i-1 P i P i+1 P i+2 ] t Cardinal spline B-spline 0 0 2 0 0 1 0 1 1 4 5 2 1 3 3 1 2 1 M Catmull 0 1 4 1 0 3 0 3 0 3 6 3 1 3 3 1 6 1 M Bspline
Splines surfaces «Tensor product»: product of spline curves in u and v Q i,j (u, v) = (u 3 u 2 u 1) M [P i,j ] M t (v 3 v 2 v 1) Exercice Order of smoothness of the surface? Locality of deformations? How to convert spline surfaces into meshes? Historic example «Utah teapot» 12
Interactive modeling with splines Make it intuitive? Inspire from real shape design! Iterative shape design 1. Create simple shapes ( primitives ) 2. Deform them locally or globally 3. Assemble them Iterate! 13
Step 1: Creating primitives Difficult to specify 3D data with a mouse! Idea: create shapes mostly from 2D input 1. Surfaces of revolution Rotation of a planar profile around an axis Mesh: grid of control points Exercise: define the control points required to generate this shape. Is your surface C1 everywhere? How can you ensure this? 14
Step 1: Creating primitives 2. Lofting Data: a planar section, an axis Translated instances of the section Generalization Sweeping gesture Exercise: how would you create this C0 only cross section? 15
Step 1: Creating primitives 3. Extrusion (also called Free-form Sweeping ) Data: A planar cross section A skeleton (3D curve) A planar profile The section is swept along the skeleton The profile is used as a scaling factor 16
Step 1: Creating primitives 3. Extrusion Place instances of the section regularly along the skeleton? Does not work properly! 17
Step 1: Creating primitives Create offsets of the skeleton Curves at fixed distance from skeleton, fixed angle / normal Adapt the offset distance using the profile d B N 18
Step 1: Creating primitives Issue : Offsets are NOT translated curves Translated copies of the skeleton Offsets Note: offsets of splines curves are NOT spline curves In practice, approximated using the same number of control points! 19
Step 2: Deform locally or Globally OK for local deformation, but is locality controllable? Exercise: If we add the yellow control point, will deformation be the same when pulling the red point? 20
Step 2: Deform locally or Globally Answer: controlling the range of deformation is difficult A full line of control points needs to be added. Consequences Difficult to get details where needed! (example: a face) Large scale editing is difficult once details have been added 21
Step 2: Deform locally or Globally Hierarchical Spline Surfaces [Forsey, Bartels SIGGRAPH 88] Tree-structure of control-point grids Local coordinated for points : P = G + O, G = S i (u 0,v 0 ) closest point on parent surface O offset vector, expressed in the local frame of the parent 22
Step 2: Deform locally or Globally Hierarchical Spline Surfaces [Forsey, Bartels SIGGRAPH 88] Compact: 24 editable control points instead of > 1000 Large scale deformations while keeping details! 23
Step 3: Assembly Fitting 2 surfaces : same number of control points? 24
Step 3: Assembly Closed surfaces can be modeled Generalized cylinder by duplicating rows of control points Closed extremity (with a degenerated spline surface) But, can we blend shapes together?? 25
Step 3: Assembly? Branches? 5 sided patch? joint between 5 patches? 26
Advanced bibliography Generalized B-spline Surfaces of Arbitrary Topology [Charles Loop & Tony DeRose, SIGGRAPH 1990] n-sided generalization of Bézier surfaces: Spatches 27
Subdivision Surfaces Topology defined by the control polygon Progressive refinement (interpolation or approximation) Butterfly Loop Catmull-Clark 28
Subdivision Curves & Surfaces Start with a control polygon or mesh progressive refinement rule (similar to B-spline) Smooth? use variance reduction! corner cutting Chaikin 29
How Chaikin s algorithm works? Q i = ¾ P i + ¼ P i+1 R i = ¼ P i + ¾ P i+1 30
Subdivision Surfaces Benefits Arbitrary topology & geometry (branching) Approximation at several levels of detail (LODs) Drawback: No parameterization, some unexpected results Loop 31
Advanced bibliography Subdivision Surfaces in Character Animation [Tony DeRose, Michael Kass, Tien Truong, Siggraph 98] Keeping some sharp creases where needed 32