introduction to computer graphics · 2009-02-12 · splines curves most important models •...
TRANSCRIPT
![Page 1: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/1.jpg)
1
Introduction to Computer GraphicsMarie-Paule Cani & Estelle Duveau
04/02 Introduction & projective rendering11/02 Prodedural modeling, Interactive modeling with parametric surfaces
25/02 Introduction to OpenGL + lab: first steps & modeling04/03 Implicit surfaces 1 + lecture/lab: transformations & hierarchies 11/03 Implicit surfaces 2 + Lights & materials in OpenGL18/03 Textures, aliasing + Lab: Lights & materials in OpenGL25/03 Textures in OpenGL: lecture + lab01/04 Procedural & kinematic animation + lab: procedural anim08/04 Physics: particle systems + lab: physics 1 22/04 Physics: collisions, control + lab: physics 2 29/04 Animating complex objects + Realistic rendering
06/05 Talks: results of cases studies
![Page 2: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/2.jpg)
2
Modeling techniques for Computer Graphics
0. Reconstruction– From real data Next year, in other courses?
1. Procedural modeling– Automatic modeling of a self-similar objects or scenes
2. Interactive modeling– Provide tools for computer artists
![Page 3: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/3.jpg)
3
Procedural modeling
Geometric primitives created by a program
• The oldest modeling method!– Basic example: OpenGL programming– Extension: use a description file
Write/read parameters, not geometry!
• Useful for large, repetitive scenes
![Page 4: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/4.jpg)
4
Procedural modeling
• Example: Fractals– Recursively add details
• Application to terrains– Add random displacements at each iteration
![Page 5: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/5.jpg)
5
Procedural modeling
Reeve’s natural scene SIGGRAPH 1982
• Grass: particles under gravity• Wind particles interact with grass• Trees: recursively throw particles
The most complex scene ever built at that time!!
![Page 6: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/6.jpg)
6
Procedural modeling
• Most common method for plants : L-systems– Simulate progressive growing using grammar rules
Inspired from biology!
![Page 7: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/7.jpg)
7
Procedural modeling
• Generalization: modeling with grammars1. Set of shapes2. Rules (take one shape and replace it with other shapes)
– Apply rules with a given probability– Use random parameters in the created shapes
3. Derivation (until « terminal shapes » only)4. Geometrical interpretation of the terminal shapes
Many applications!
![Page 8: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/8.jpg)
8
Procedural modeling
Example: cities
The method works at many different scales!
![Page 9: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/9.jpg)
9
Procedural modeling
• Procedural terrain, many different techniques
«Rama» 2006, Eric Bruneton
![Page 10: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/10.jpg)
10
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 for computer artists
![Page 11: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/11.jpg)
11
Interactive Modeling
Aim : Enable artists to create & refine the shape they have in mind
Humans model shape indirectly
• Input/output for dance, for music• No output for shapes!
– Use hands & tools– Create via a medium
Can we do this on a computer?Store, undo/redo, cut, copy/paste, refine, deform, edit at any scale
![Page 12: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/12.jpg)
12
Shape representation for shape design?
• Boundary representations (surfaces)– Polygons (discrete surfaces)– Splines, NURBS – Subdivision & multi-résolution surfaces
• Volumetric representations– Voxels (discrete volumes)– CSG (Constructive Solid Geometry) – Implicit surfaces
Most of them not introduced to ease interactive design !
![Page 13: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/13.jpg)
13
Shape representation for shape design?
Criteria?1. Real-time display after each interaction2. No restriction on the created shape
– Geometry: holes, branches, details…– Topology: any genius, allow topological changes
3. Avoid unnecessary degrees of freedom– Ex: closed objects: volumes vs. surfaces
4. Allow long modeling sessions– Complexity function of shape, not of user gestures!
5. Local & global, constant volume deformations
![Page 14: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/14.jpg)
14
Choice of a representation?
Notion of ‘geometric model’– Mathematical description of a virtual object(enumeration/equation of its surface/volume)
How should we represent this object…– To get something smooth where needed ?– To have some real-time display ?– To save memory ?– To ease subsequent deformations?
![Page 15: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/15.jpg)
15
Why do we need Smooth Surfaces ?
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
![Page 16: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/16.jpg)
16
Parametric curves and surfaces
Defined by a parametric equation• Curve: C(u)• Surface: S(u,v)
Advantages– Easy to compute points– Easy to discretize– Parametrization u
v
u
![Page 17: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/17.jpg)
17
Parametric curves: Splines
Motivations : interpolate/approximate points Pk
• Easier too give a finite number of “control points”• The curve should be smooth in between
Why not polynomials? Which degree would we need?
u
![Page 18: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/18.jpg)
18
Spline curves
• Defined from control point• Local control
– Joints between polynomial curve segments– degree 3, C1 or C2 continuity
Spline curve
Control point
![Page 19: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/19.jpg)
19
Interpolation vs. Approximation
P1 P2
P3
P2
P3
P1
![Page 20: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/20.jpg)
20
Splines curvesMost important models
• Interpolation– Hermite curves C1, cannot be local if C2
– Cardinal spline (Catmull Rom)
• Approximation– Bézier curves– Uniform, cubic B-spline (unique definition, subdivision)– Generalization to NURBS
![Page 21: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/21.jpg)
21
Cardinal Spline, with tension=0.5
![Page 22: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/22.jpg)
22
Uniform, cubic Bspline
![Page 23: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/23.jpg)
23
Cubic splines: matrix equation
P1 P2
P3 P4 P4
P2
P3
P1
Qi (u) = (u3 u2 u 1) Mspline [Pi-1 Pi Pi+1 Pi+2] t
Cardinal spline B-spline
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−−
−−
=
002001011452
1331
21
CatmullM
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
=
0141030303631331
61
BsplineM
![Page 24: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/24.jpg)
24
Splines surfaces
« Tensor product »: product of spline curves in u and vQi,j (u, v) = (u3 u2 u 1) M [Pi,j] Mt (v3 v2 v 1)
– Smooth surface?
– Convert to meshes?
– Locallity?Local deformation
Historic example
![Page 25: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/25.jpg)
25
Interactive Modeling
Make it intuitive? Inspire from real shape design!
Iterative shape design
1. Take or create simple shapes (“primitives”)
2. Deform them locally or globally
3. Assemble them
Iterate!
![Page 26: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/26.jpg)
26
Parametric modeling 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…
![Page 27: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/27.jpg)
27
Parametric modeling Step 1: Creating primitives
2. Lofting • Data: a planar section, an axis• Translated instances of the section
Generalization “sweeping” gesture
![Page 28: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/28.jpg)
28
Parametric modeling 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
![Page 29: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/29.jpg)
29
Extrusion
Naïve ideaPlace instances of the section regularly along the skeleton
Does not work properly!
![Page 30: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/30.jpg)
30
Extrusion
• Create offsets of the skeleton – Curves at fixed distance from skeleton, fixed angle / normal
• Adapt the offset distance using the profile
N
Bd
![Page 31: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/31.jpg)
31
Extrusion
Issue : Offsets are NOT translated curves
• Note: offsets of splines curves are NOT spline curvesIn practice, approximated using the same number of control points!
Translated copies of the skeleton Offsets
![Page 32: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/32.jpg)
32
Step 2: Deform locally or Globally
OK for local deformation, but is locality controllable?
• Spline surfaces – Difficult to get details where needed!– Can we edit at a large scale once details have been added ?
![Page 33: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/33.jpg)
33
Step 2: Deform locally or GloballyIssue: Control of locality
Hierarchical Spline Surfaces [Forsey, Bartels SIGGRAPH 88]
• Tree-structure of control-point grids • Local coordinated for points : P = G + O,
– G = Si(u0,v0) closest point on parent surface– O offset vector, expressed in the local frame of the parent
![Page 34: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/34.jpg)
34
1. Model-based, local deformationsIssue: Control of locality
Hierarchical Spline Surfaces [Forsey, Bartels SIGGRAPH 88]
• Compact: 24 editable control points instead of 1225!• Large scale deformations while keeping details!
![Page 35: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/35.jpg)
35
Step 3: Assembly
• Fitting 2 surfaces : same number of control points
?
![Page 36: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/36.jpg)
36
Step 3: Assembly
Closed surfaces can be modeled• Generalized cylinder: duplicate rows of control points• Closed extremity: degenerate the spline surface!
Can we fit them arbitrarily?
?
![Page 37: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/37.jpg)
37
Step 3: Assembly
Branches ?• 5 sided patch ?• joint between 5 patches ?
?
![Page 38: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/38.jpg)
38
Advanced bibliographyGeneralized B-spline Surfaces of Arbitrary Topology
[Charles Loop & Tony DeRose, SIGGRAPH 1990]• n-sided generalization of Bézier surfaces: “Spatches”
![Page 39: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/39.jpg)
39
Subdivision Surfaces
• Topology defined by the control polygon• Progressive refinement (interpolation or approximation)
Loop
ButterflyCatmull-Clark
![Page 40: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/40.jpg)
40
Advanced bibliographySubdivision Surfaces in Character Animation
[Tony DeRose, Michael Kass, Tien Truong, Siggraph 98]
Keeping some sharp creaseswhere needed
![Page 41: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/41.jpg)
41
Complement: another use of splinesDefining “Space deformations”
“Free form deformations” (FFDs)1. Place the object in a Spline volume (3D grid of control points)
Qi,j,k (u, v,w) = ∑ Bi(u) Bj(v) Bk(w) Pijk
2. “Freeze” each vertex P to (u,v,w)
3. Move the volume’s control points
4. Re-compute the object’s vertices : P = Qi,j,k (u0, v0, w0)
P
![Page 42: Introduction to Computer Graphics · 2009-02-12 · Splines curves Most important models • Interpolation – Hermite curves C1, cannot be local if C2 – Cardinal spline (Catmull](https://reader033.vdocuments.us/reader033/viewer/2022050100/5f3fa96f4828fa378f38bb26/html5/thumbnails/42.jpg)
42
Complement: another use of splinesDefining “Space deformations”
“Free form deformations” FFDs
[Coquillart 1990]Extended FFD
FF
FF[Sederberg, Parry 1986]• Lattice = Bézier volume• Pb of locality