Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 [email protected].

45
Courbes et Surfaces Nicolas Holzschuch Cours d’Option Majeure 2 [email protected]

Transcript of Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 [email protected].

Page 1: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Courbes et Surfaces

Nicolas Holzschuch

Cours d’Option Majeure [email protected]

Page 2: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Plan•Pourquoi faire ?

– Besoins (localité, contrôle…)– Principes généraux

•Courbes– Bézier, B-splines, NURBS

•Surfaces•Surfaces de subdivision

– Courbes– Surfaces

Page 3: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Besoins• Dessiner quelque chose de courbe

– Lisse, continu, C1, C2…

– Facilement

– Contrôler la courbe

• Facilement :– Peu de points de contrôle

– Continuité garantie

• Contrôle :– Contrôle local

– Contrôle direct

Page 4: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Besoins•Quelque chose qui varie de façon lisse

– Paramètre (1D), modèle, surface…– Question générale en informatique graphique

•Édition locale :– Retouches ponctuelles– Influence limitée

•Continuité garantie :– C1, C2,…

Page 5: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Solution générale•Courbes polynomiales par morceaux

•Définies par des points de contrôle– Nombre de pts de contrôle lié au degré du poly.

Page 6: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Courbes•Principes généraux

•Bézier/Hermite

•B-Splines

•NURBS

Page 7: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Courbes polynomiales par morceaux

•Polynomes degré 3 (en général)– Ttes variantes possible (1, 2, … n …)

•4 points de contrôle :

x(t)

y(t)

z(t)

⎢ ⎢ ⎢

⎥ ⎥ ⎥=

m11 m12 m13 m14

m21 m22 m23 m24

m31 m32 m33 m34

⎢ ⎢ ⎢

⎥ ⎥ ⎥

t3

t2

t1

⎢ ⎢ ⎢ ⎢

⎥ ⎥ ⎥ ⎥

x(t)

y(t)

z(t)

⎢ ⎢ ⎢

⎥ ⎥ ⎥= P1 P2 P3 P4[ ]

c11 c12 c13 c14

c21 c22 c23 c24

c31 c32 c33 c34

c41 c41 c43 c44

⎢ ⎢ ⎢ ⎢

⎥ ⎥ ⎥ ⎥

t 3

t 2

t

1

⎢ ⎢ ⎢ ⎢

⎥ ⎥ ⎥ ⎥

Page 8: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Propriétés générales•Enveloppe convexe :

– Bi [0,1] : courbe ds env. convexe pts de contrôle

•Contrôle local :– Chaque point influence au plus 4 courbes– Chaque courbe dépend d’au plus 4 points

•Continuité :– Sur chaque morceau de courbe : C

– Entre les morceaux ?

Page 9: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Courbes de Bézier•Cas degré 3 :

•Dit autrement :

x(t)

y(t)

z(t)

⎢ ⎢ ⎢

⎥ ⎥ ⎥= P1 P2 P3 P4[ ]

−1 3 3 1

3 −6 3 0

−3 3 0 0

1 0 0 0

⎢ ⎢ ⎢ ⎢

⎥ ⎥ ⎥ ⎥

t 3

t 2

t

1

⎢ ⎢ ⎢ ⎢

⎥ ⎥ ⎥ ⎥

P(t) = (1− t)3 P1 + 3t(1− t)2 P2 + 3t 2(1− t)P3 + t 3P4

Page 10: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Courbes de Bézier : propriétés•G’(0) = 3(P1P2), G’(1) = 3(P3P4)

•Tangente

•Continuité

Page 11: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Courbes de Bézier (exemples)

+ application

Page 12: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Courbes de Bézier : Illustrator

Page 13: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Courbes de Bézier : Freehand

Page 14: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Courbes de Bézier : PS• Définition des polices Postscript : Bézier degré 2

Page 15: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Courbes de Bézier•Possible avec degré quelconque :

•Polynômes de Bernstein :€

P(t) = CNi (1− t)N−i t iPi

i= 0

N

P(t) = BiN (t)Pi

i= 0

N

Page 16: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Algorithme de Casteljau•Subdivision de courbes de Bézier

L1

L2L3

L4

Page 17: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Hermite•Autre définition

• Identique Bézier

P1

V1V2

P2

Page 18: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

B-Splines•Contrôle continu

•Chaque point influence 4 courbes

x(t)

y(t)

z(t)

⎢ ⎢ ⎢

⎥ ⎥ ⎥= Pi−3 Pi−2 Pi−1 Pi[ ]

16

−1 3 −3 13 −6 3 0−3 0 3 01 4 1 0

⎢ ⎢ ⎢ ⎢

⎥ ⎥ ⎥ ⎥

t3

t2

t1

⎢ ⎢ ⎢ ⎢

⎥ ⎥ ⎥ ⎥

Page 19: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

B-Splines•Continuité : C2 par définition

•P(t) = P0*B(t)+P1*B(t-1)+P2*B(t-2)+...

•Contrôle local :– Influence sur 4 courbes

•Répétition de points de contrôle– Perte de continuité, gain de contrôle

Page 20: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

B-Splines : exemples•Cf. application

Page 21: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

B-Splines•P(t) = P0*B(t)+P1*B(t-1)+P2*B(t-2)+...

•Valable quel que soit le degré– B de degré 0 = box function– B de degré n = convolution B n-1 avec B0

Page 22: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Cas B degré 3

v

43210

0.6

0.5

0.4

0.3

0.2

0.1

0

Page 23: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

NURBS•Non-Uniform Rational B-Splines

•Logiciels de CAD

•Modèle quadriques avec peu de points de contrôle

Page 24: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Re-paramétrisation•Vitesse uniforme le long de la courbe

•Paramétrisation par abscisse curviligne– Échantillonnage, calcul…

Page 25: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Surfaces•Principes généraux

•Patch de Bézier, B-splines, NURBS

•Surfaces de subdivision

Page 26: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Surfaces paramétriques• Idem courbes : polynomial par morceaux

•Produit tensoriel de courbes– Bézier, B-splines…

•n2 points de contrôle par patch

•Continuité : pareil que les courbes

Page 27: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Patches de Bézier

Page 28: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

NURBS

Page 29: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Surfaces de subdivision•Principe identique :

– Maillage de points de contrôle– Pas d’expression directe de la courbe

•Raffinement successifs– Courbe résultante lisse– Nombreuses études mathématiques

•Beaucoup d’avantages

Page 30: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Surfaces de subdivision•Courbes de subdivision

•Surfaces :– Maillage originel :

• Triangles/quads

– Règles de subdivision– Propriétés de la surface résultat

Page 31: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Courbes de subdivision•Raffinements successifs :

•Nouveaux points :– Combinaison linéaire anciens points– Ici, 1/16(-1, 9, 9, -1)

©P.Schröder, 2000

Page 32: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Courbes de subdivision•Maillage original (« points de contrôle »)

•Règle de subdivision

•Application récursive de la règle

•Convergence vers courbe Cn

– Conditions sur les poids

•Cf. application

Page 33: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Surfaces de subdivision

Page 34: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Surfaces de subdivision•Maillage original

•Règle de subdivision

•Application récursive de la règle

•Convergence vers surface Cn

•Différents algorithmes

Page 35: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Surfaces de subdivision

©D.Zorin, 2000

Face split

Triangular meshes Quad. meshes

Approximating Loop (C2) Catmull-Clark (C2)

Interpolating Mod. Butterfly (C1) Kobbelt (C1)

Vertex split

Doo-Sabin, Midedge (C1)

Biquartic (C2)

Page 36: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Méthode de raffinement de Loop

©D.Zorin, 2000

Page 37: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Loop subdivision scheme

Page 38: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Butterfly subdivision©

D.Z

orin, 2000

Page 39: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Butterfly subdivision

Page 40: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.
Page 41: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.
Page 42: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

©D

.Zorin, 2000

Page 43: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Plaquage de textures

Page 44: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Surfaces de subdivision•Outil de modélisation puissant

– Surfaces continues, contrôle local, discontinuités

•Nombreuses questions mathématiques– Aire, – Propriétés des surfaces, – Convergence…

•Domaine de recherche important– Complexité mathématique

Page 45: Courbes et Surfaces Nicolas Holzschuch Cours dOption Majeure 2 Nicolas.Holzschuch@imag.fr.

Pause•Geri’s Game :

– Première utilisation des surfaces de subdivision– Intégration dans l’outil

• Modélisation, animation, rendu

– Discontinuités variables