2. la modelisation geometrique - freebigbozoid.free.fr/courslicence3/ims/cours_in... · le plan p 0...

48
Infographie - 28 - Daniel Thalmann, EPFL-LIG 2. LA MODELISATION GEOMETRIQUE 2.1 Introduction à la modélisation 2.1.1 Modélisation de surfaces courbes et d’objets naturels La plupart des objets que l'on désire construire ont des propriétés de courbure; comme nous l'avons dit précédemment, il est possible de les approximer par des polygones. On peut aussi les représenter sous forme de polynomes de degré 3 ou plus. Quelque soit la forme interne de telles surfaces, celles-ci jouent un rôle important. Nous pouvons distinguer trois types de surfaces de ce genre: 1. Les surfaces par balayage (voir Section 2.1.2) telles que les cônes, les cylindres, les surfaces de révolutions 2. Les surfaces paramétriques données par leurs équations Y=Y(U,V) Z=Z(U,V) (voir Section 2.1.3) 3. Les surfaces libres (voir Section 2.2), ce sont ces dernières qui permettent le plus facilement de modeler des objets compliqués; on distingue 4 principaux types de surfaces libres: les surfaces de Coons (voir Section 2.2.8), les surfaces de Bézier (voir Section 2.2.9), les surfaces B-splines (Voir Section 2.2.10) et les surfaces β -splines (voir Section 2.2.11) On signalera encore que des surfaces peuvent être obtenues en les déformant à l’aide de déformations particulières telles que les FFD (voir Section 2.1.4). Il est aussi souvent utile de considérer des structures solides (voir Section 2.3). Pour les objets de la nature, le problème est encore plus compliqué et nécessite des modèles et des méthodes très différentes. Les deux principaux courants sont les fonctions implicites (voir Section 0) et les fractales (voir Section 2.5). 2.1.2 Représentations par balayage Ces représentations sont basées sur le déplacement d'une région (génératrice) le long d'une courbe (directrice). On distingue trois pricipales représentations de ce type: les surfaces par balayage translationnel, les surfaces par balayage rotationnel et les surfaces par balayage conique. 2.1.2.1 Les balayages translationnels Ils sont à l'origine des formations de cylindres. Un objet S T défini par balayage translationnel s'obtient en translatant une région 2D C le long d'un vecteur T et selon une distance d, comme le montre la Figure 2-1. Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le plan du sommet.

Upload: others

Post on 18-May-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 28 - Daniel Thalmann, EPFL-LIG

2. LA MODELISATION GEOMETRIQUE

2.1 Introduction à la modélisation

2.1.1 Modélisation de surfaces courbes et d’objets naturels

La plupart des objets que l'on désire construire ont des propriétés de courbure; comme nous l'avons dit précédemment, il est possible de les approximer par des polygones. On peut aussi les représenter sous forme de polynomes de degré 3 ou plus. Quelque soit la forme interne de telles surfaces, celles-ci jouent un rôle important. Nous pouvons distinguer trois types de surfaces de ce genre:

1. Les surfaces par balayage (voir Section 2.1.2) telles que les cônes, les cylindres, les surfaces de révolutions

2. Les surfaces paramétriques données par leurs équations Y=Y(U,V) Z=Z(U,V) (voir Section 2.1.3)

3. Les surfaces libres (voir Section 2.2), ce sont ces dernières qui permettent le plus facilement de modeler des objets compliqués; on distingue 4 principaux types de surfaces libres: les surfaces de Coons (voir Section 2.2.8), les surfaces de Bézier (voir Section 2.2.9), les surfaces B-splines (Voir Section 2.2.10) et les surfaces β-splines (voir Section 2.2.11)

On signalera encore que des surfaces peuvent être obtenues en les déformant à l’aide de déformations particulières telles que les FFD (voir Section 2.1.4). Il est aussi souvent utile de considérer des structures solides (voir Section 2.3).

Pour les objets de la nature, le problème est encore plus compliqué et nécessite des modèles et des méthodes très différentes. Les deux principaux courants sont les fonctions implicites (voir Section 0) et les fractales (voir Section 2.5).

2.1.2 Représentations par balayage

Ces représentations sont basées sur le déplacement d'une région (génératrice) le long d'une courbe (directrice). On distingue trois pricipales représentations de ce type: les surfaces par balayage translationnel, les surfaces par balayage rotationnel et les surfaces par balayage conique.

2.1.2.1 Les balayages translationnels

Ils sont à l'origine des formations de cylindres. Un objet ST défini par balayage translationnel s'obtient en translatant une région 2D C le long d'un vecteur T et selon une distance d, comme le montre la Figure 2-1. Le plan P0 de la courbe est appelé le plan de base et le plan P1 à une distance d est le plan du sommet.

Page 2: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 29 - Daniel Thalmann, EPFL-LIG

T

d

P

P

C

1

0

plan de sommet

plan de base

Figure 2-1. Balayage translationnel

On peut signaler quelques cas particuliers:

C est un rectangle → St est une boîte

C est un disque → St est un cylindre

C est une région polygonale → St est un prisme

2.1.2.2 Les balayages rotationnels

Les objets générés par balayage rotationnel (surfaces de révolution) sont obtenus en faisant tourner une région 2D C autour d'un axe A. Deux éléments sont importants dans une telle surface: le point de base B et la fonction radiale r(s) (voir Figure 2-2).

A

r

B

Figure 2-2. Balayage rotationnel

Page 3: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 30 - Daniel Thalmann, EPFL-LIG

2.1.2.3 Les balayages coniques

Ces balayages à l'origine des cônes consistent en un déplacement d'une région 2D C avec transformation d'échelle. Le Figure 2-3 nous montre un exemple.

C

plan de base

S

P0

Figure 2-3. Balayage conique

2.1.3 Surfaces données par leur équation

On distinguera les cas suivants:

1. Courbes et surfaces cartésiennes implicites:

F(x, y) = 0 ou G(x, y, z) = 0

p.e. la sphère: (x-a)2 + (y-b)2 + (z-c)2 = 0

2. Courbes et surfaces cartésiennes explicites:

y = f(x) ou z = g(x,y)

p.e. z = 3x2 + 4y2 -2xy + 5x + 6y - 7

3. Courbes et surfaces paramétriques:

courbes: C(t) x = f1(t) y = f2(t) z = f3(t)

surfaces: S(u,v) x = g1(u,v) y = g2(u,v) z = g3(u,v)

2.1.4 Les "FFD "

Les FFD (“Free form deformation”), créées par Sederberg et Parry, constituent une technique pour déformer librement des modèles géométriques. Il est ainsi possible de déformer des primitives surfaciques de n’importe quel type ou degré, par exemple des figures planes, des quadriques, des surfaces paramétriques ou des surfaces implicites. Les FFD impliquent une correspondance de R3 dans R3 par un produit tensoriel trivarié de polynômes de Bernstein. Physiquement, les FFD correspondent à des déformations appliquées à un parallélépipède (boîte) imaginaire fait de plastic transparent et flexible, et dans lequel se trouve l’objet à déformer. Les objets sont aussi considérés comme flexibles de telle manière à ce qu’ils puissent se déformer en même temps que la boîte qui les

Page 4: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 31 - Daniel Thalmann, EPFL-LIG

entoure. Mathématiquement, si on impose un système de coordonnées locales (S,T,U) sur un parallélépipède avec l’origine en X0, un point X a des coordonnées (s,t,u) dans ce système définies comme:

X = X0 + sS + tT + uU

On impose aussi une grille de points de contrôle Pijk (i=0 to l, j=0 to m, k=0 to n) sur le parallélépipède. Les points de contrôle sont positionnés ainsi:

Pijk = X0 +il

S+j

mT +

kn

U

Les coordonnées (s,t,u) peuvent être déterminées par les équations suivantes:

s =(T × U) ⋅(X − X 0 )

(T × U) ⋅ S, t =

(S × U) ⋅ (X − X0 )(S × U) ⋅ T

,u =(S × T) ⋅ (X − X0 )

(S × T) ⋅U,

Pour tout point à l’intérieur du parallélépède, 0<s<1, 0<t<1, 0<u<1, on spécifie la déformation en déplaçant le ou les points de contrôle de leur position de repos. La nouvelle position X' (après déformation) d’un point X se calcule ainsi:

X' = Pijk Bil (s)Bj

m (t)Bkn (u)

k=0

n

∑j=0

m

∑i=0

l

où Bil(s), B j

m (t), Bkn(u) sont les polynômes de Bernstein définis comme:

Bil(s) = (i

l )(1− s)l−i si,

B jm( t) = (j

m )(1− t)m− j t j,

Bkn (u) = (k

n )(1 − u)n−k uk

Les FFD de base ont été étendus à plusieurs reprises. Une des extensions (utilisée pour l’animation de visage, voir Partie 4) consiste à inclure des fonctions de base rationnelles dans la formulation des déformations. Les fonctions de base rationnelles permettent la pondération des points de contrôle dans la grille du parallélépipède par des poids Wijk. Avec la nouvelle formulation l’equation (4) devient:

X' = i=0

l

∑j=0

m

∑k=0

n

∑ Pijk Wijk Bil(s)B j

m ( t)Bkn(u)

i= 0

l

∑j=0

m

∑k=0

n

∑ WijkBil(s)Bj

m (t)Bkn (u)

Page 5: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 32 - Daniel Thalmann, EPFL-LIG

Utiliser des FFD rationnels offre l’avantage de donner un degré de liberté supplémentaire lors de la manipulation des déformations en permettant de changer les poids des points de contrôle. Quand les poids à chaque point de contrôle valent 1, les déformations sont équivalentes aux FFD de base.

2.2 Courbes, surfaces paramétriques et splines

2.2.1 Interpolations et approximations

Une courbe ou une surface est généralement donnée par un ensemble de points 3D. On distingue alors 2 types de méthodes:

• Les approximations: la courbe ou la surface est définie par les points, mais ne passe par nécessairement par eux. Ce sont les ajustement et les méthodes de points de contrôle.

• Les interpolations: la courbe ou la surface passe par les points.

Méthodes d'interpolation:

Pour les courbes: -Interpolation linéaire

-Mélange de paraboles

-Interpolation locale d'Akima

-Interpolation de spline de Catmull-Rom

-Interpolation de spline de Kochanek-Bartels

Pour les surfaces: -Interpolation de Coons

Méthodes d'approximation:

Pour les courbes et les surfaces: - Approximations de Bézier

- Approximations B-spline

- Approximations ß-spline

Une comparaison entre les méthodes d'approximation et d'interpolation est montrée à la Figure 2-4.

2.2.2 Fonctions de base et produit tensoriel

Une courbe C(u) s'exprime souvent comme combinaison linéaire de fonction de base Fi(u):

C(u) =i=0

n

∑ ci Fi(u)

Page 6: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 33 - Daniel Thalmann, EPFL-LIG

où les ci sont des coefficients.

Supposons maintenant que chaque ci parcoure une courbe ci(v) aussi exprimée sous forme de combinaison linéaire de fonctions Gk(v):

ci(v) = k= 0

m

∑ aikGk(v)

Par substitution, on obtient: la surface (produit tensoriel)

S(u,v) = i=0

n

∑k=0

m

∑ aik Fi(u) Gk(v)

Page 7: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 34 - Daniel Thalmann, EPFL-LIG

Figure 2-4. Comparaison entre approximations et interpolations

Courbes et surfaces sont souvent coupées en morceaux. Les limites des morceaux constituent les noeuds.

2.2.3 Interpolation linéaire et polynomiale

Le problème d'interpolation peut être résumé ainsi: soient N+1 points, Pi, i=0 to N, trouver la courbe Q(t) passant par ces points. Nous supposons que la valeur du paramètre t est donnée aux noeuds ti de Q(t). Deux extrêmes sont possibles:

Page 8: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 35 - Daniel Thalmann, EPFL-LIG

1. Joindre les paires de points Pi,Pi+1 de façon indépendante; c'est l'interpolation linéaire

2. Trouver une unique courbe passant par tous les points; c'est, par exemple, la méthode des polynomes de Lagrange qui a l'inconvénient de donner des fonctions de degré N. On observera alors une oscillation lorsqu'on élève le degré en ajoutant un point.

oo

C(t)

r

t

C(t)

so

oP0

P1

K (r)1

P2

K (s)2

P3

K (s)2K (r)1

Figure 2-5. Mélange de paraboles

2.2.4 Mélange de paraboles

Considérons 4 points Pi, i=0 to 3 (voir Figure 2-5) et les paraboles K1(r) et K2(s) définie respectivement par les points P0,P1,P2 et P1,P2,P3. Une parabole-mélange C(t) est calculée comme la somme pondérée de K1(r) et K2(s):

C(t) =K1(r) (1- t

| P2 − P1 |) +

K2 (s)| P2 − P1 |

t ,

2.2.5 Interpolation locale d'Akima

La méthode de base en 2D consiste à trouver une portion de courbe cubique entre 2 points de telle manière que la courbe passe par les points et que la tangente en chacun de ces points soit seulement déterminée par 2 points avant et 2 points après.

Formule préliminaire

Considérons la situation de la Figure 2-6.

En posant pour les pentes:

Page 9: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 36 - Daniel Thalmann, EPFL-LIG

m i =yi+1 − yixi+1 − xi

avec Pi = <xi, yi> et i = 1 to 4

o

o

o

o

oP1

P2

P3P4

P5

tangente

Figure 2-6. Representation des points nécessaire pour calculer la tangente en P3

La pente de la tangente est obtenue ainsi:

M= m2 | (m3 − m1)(m4 − m3) | + m3 | (m2 − m1)(m4 − m2 ) |

| (m3 − m1)(m4 − m3) | + | (m2 − m1)(m4 − m2) |

Détermination de la cubique entre 2 points P1 et P2. Soit l'équation:

y = ? 0 + ? 1 (x-x1) + ? 2 (x-x1)2 + ? 3 (x-x1)3

avec les 4 conditions:

x=x1 ⇒ y = y1

x=x1 ⇒ dydx

= M1

x=x2 ⇒ y = y2

x=x2 ⇒ dy

dx= M2

On en tire:

? 0 = y1

Page 10: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 37 - Daniel Thalmann, EPFL-LIG

? 1 = M1

Ω2 =−m2 − 2m1

β+

3(y2 − y1)β2

Ω3 =m1 + m2

β2 −2(y2−y1)

β3

avec ß = x2-x1.

Pour les extrémités, Akima propose de calculer 2 points en extra à l'aide d'une parabole.

2.2.6 Interpolation de spline de Catmull-Rom

Considérons une liste de points Pi . Un point V entre Pk et Pk+1 est obtenu par:

V = TMPT

où T est la matrice [t3 t2 t 1], M est la matrice de Catmull-Rom, et P est la matrice [Pk-1, Pk, Pk+1, Pk+2].

On peut ainsi générer pour 4 points consécutifs Pk-1, Pk, Pk+1 and Pk+2, la portion de courbe spline entre les 2 points du milieu Pk, Pk+1.

M = 0.5

−1 3 −3 12 −5 4 −1

−1 0 1 00 1 0 0

2.2.7 Interpolation de Hermite et spline de Kochanek-Bartels

Cette fois, un point V est obtenu à partir de 2 points Pi et Pi+1 et 2 vecteurs tangents Di et Di+1:

V = THCT (Eq. 2.2-1)

où T est la matrice [t3 t2 t 1], H est la matrice de Hermite, et C est la matrice [Pi, Pi+1, Di, Di+1]. La matrice de Hermite est donnée par:

H =

2 −2 1 1−3 3 −2 −10 0 1 01 0 0 0

Elle correspond aux fonctions de Hermite (Figure 2-7) telle que:

H1(0) = H2(1) =1

Page 11: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 38 - Daniel Thalmann, EPFL-LIG

H2(0) = H3(0) = H4(0) = H1(1) = H3(1) = H4(1) = 0

dH3(0)

dt=

dH4(1)dt

= 1

dH1(0)

dt=

dH2(0)dt

=dH4 (0)

dt=

dH1(1)dt

=dH2(1)

dt=

dH3(1)dt

= 0

Introduisons les dérivées sources DSi et les dérivées destination DDi en un point Pi. Nous pouvons introduire 3 paramètres la tension t, la continuité c et le biais b.

1

1

1

11

1

1

1

a b

c d

Figure 2-7. Fonctions de base de Hermite a H1(t) = 2t3 - 3t2 +1; b H2(t) = - 2t3 + 3t2; c H3(t) = t3 - 2t2 +t; d H4(t) = t3 - t2

La tension t contrôle comment la courbe se tend en Pi d'après l'équation:

DSi = DDi = 0.5 (1-t) (Pi+1-Pi-1)

La continuité c au point Pi est contrôlée par les équations suivantes:

DSi = 0.5 [(1+c) (Pi+1-Pi) + (1-c) (Pi-Pi-1)]

DDi = 0.5 [(1-c) (Pi+1-Pi) + (1+c) (Pi-Pi-1)]

Enfin la direction de passage en Pi est contrôlée par le biais b selon l'équation:

DSi = DDi = 0.5 [(1-b) (Pi+1-Pi) + (1+b) (Pi-Pi-1)]

Les équations combinées nous donne:

DSi = 0.5 [(1-t)(1+c)(1-b) (Pi+1-Pi) + (1-t)(1-c)(1+b) (Pi-Pi-1)]

DDi = 0.5 [(1-t)(1-c)(1-b) (Pi+1-Pi) + (1-t)(1+c)(1+b) (Pi-Pi-1)]

Page 12: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 39 - Daniel Thalmann, EPFL-LIG

Une spline est alors générée en utilisant l'équation (Eq. 2.2-1) avec DDi et DSi+1 au lieu de Di et Di+1. La Figure 2-8 nous montre l'impact des paramètres.

graphe decontrôlecontinuité =

tension = 0biais = 0continuité = 0

tension = 0.7biais = 0continuité = 0

tension = - 0. 7biais = 0continuité = 0

tension = 0biais = 0.7continuité = 0

tension = 0biais = -0.7continuité = 0

tension = 0biais = 0continuité = 0.7

tension = 0biais = 0continuité = -0.7

Figure 2-8. Impact de la tension, de la continuité et du biais

Les spline de Kochanek-Bartels sont particulièrement utiles en animation et nous les reverrons dans la Partie 4.

2.2.8 Surfaces de Coons

Cette méthode, créée par Coons en 1964 construit une surface S(U,V) à partir de 4 courbes P(U,0), P(U,1), P(0,V) et P(1,V) (voir Figure 2-9) selon la formule suivante:

S(U,V) = P(U,0)*F0(V) + P(U,1)*F1(V) + P(0,V)*F0(U) + P(1,V)*F1(U)

- P(0,0)*F0(U)*F0(V) - P(0,1)*F0(U)*F1(V) - P(1,0)*F1(U)*F0(V)

- P(1,1)*F1(U)*F1(V)

Les fonction Fi sont des fonctions qui doivent être choisies adéquatement. Les plus simples sont: F0(U) = 1-U et F1(U) = U

Page 13: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 40 - Daniel Thalmann, EPFL-LIG

P (1,1)

P (1,0)

P(0,0)

P (0,1)

P (u,1)P (1,v)

P (u,0)

P (0,v)

o

o

o

o

Figure 2-9. Surface de Coons

2.2.9 Surfaces de Bézier

Dans cette méthode (Bézier, 1972), la surface est calculée à partir d'une grille de M*N points de contrôle selon les formules suivantes:

(V)B(U)BP V)S(U, jM0

iNij0

∑∑==

=M

j

N

i

où U et V sont compris entre 0 et 1 et les Bij sont les polynomes de Bernstein:

BiN(U) = N!/(i!*(N-i)!)*Ui*(1-U)N-i

BjM(V) = M!/(j!*(M-j)!)*Vj*(1-V)M-j

La surface est donc contrôlée par les Pij, malheureusement une modification d'un point de contrôle change toute la surface et le degré des polynomes est intimement lié au nombre de points de contrôle, ce qui entraîne une très grande complexité de calcul quand le nombre de points de contrôle devient grand.

2.2.10 Surfaces B-splines

Ces surfaces remédient en grande partie aux défauts des surfaces de Bézier; leur formulation est d'ailleurs assez proche de la formulation des surfaces de Bézier:

)(N)(NPV(U,S ,j0

,iij0

lk, VU l

M

jk

N

i∑∑

==

Les Ni,j sont les fonctions B-splines de base que l'on définit récursivement. Sans entrer dans les détails, on peut indiquer qu'un contrôle local est possible; ainsi la modification d'un point de contrôle

Page 14: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 41 - Daniel Thalmann, EPFL-LIG

ne change pas toute la courbe. D'autre part, k et l contrôlent l'ordre des B-splines, ceci signifie que pour la même grille de points de contrôle, on peut obtenir une surface qui adhère plus ou moins à cette grille en faisant varier k et l; cependant, lorsqu'on augmente k ou l, on augmente aussi considérablement la complexité des calculs. De plus k et l étant des ordres, ils sont entiers ce qui empêche toute variation continue.

2.2.11 Surfaces β -splines

Ces surfaces (Barsky, 1981) également produites à partir d'une grille de points de contrôle ont l'avantage d'être basées sur des considérations géométriques. Ainsi, on a :

Si,j(U,V) =r =−2

1

∑s=−2

1

∑ Vi+r,j+s*br(β1,β2,U)*bs(β1,β2,V)

où bk (k=-2 à 1) est un polynome cubique appelé la k-ième fonction de base β-spline. Dans cette fonction, β1 et β2 sont deux paramètres appelés respectivement le biais et la tension. Le premier permet de contrôler la symétrie de la surface engendrée par rapport à la grille et le second contrôle le degré d'adhérence de la surface à la grille.

La Figure 2-10 nous montre l'effet de ces paramètres dans le cas d'une courbe.

ß = 1 ß = 01 2

ß = 1 ß = 501 2

ß = 2 ß = 01 2

ß = 1 ß = 51 2

ß = 0.5 ß = 01 2

Figure 2-10. Effet du biais et de la tension dans une courbe β-spline

2.3 Representation d'objets solides

2.3.1 Le rôle des solides en image de synthèse

La génération de solides ou volumes est très importante dans le domaine de la Conception Assistée par Ordinateur (CAO). En effet, comment considérer une pièce mécanique ou un pont du point de

Page 15: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 42 - Daniel Thalmann, EPFL-LIG

vue purement surface alors qu'il faut être capable de faire des ouvertures ou de combiner les volumes. Pour cette raison, la géométrie des solides a été développée. Elle repose principalement sur deux types de représentation: constructive solid geometry (CSG) et les modèles frontaliers.

En image de synthèse et en animation 3D, il y a aussi un besoin de représenter des objets 3D solides. Par exemple, il devient beaucoup plus facile d'effectuer des opérations ensemblistes (union, intersection et différence) sur des solides. Le stockage d'objets complexes sous forme CSG ou octree est particulièrement efficace. Ces techniques sont aussi très utile dans la méthode du lancer de rayons.

Il existe quatre types de modeleurs principaux (octree, CSG, Brep, hybride et paramètrique), Les logiciels de simulation numérique (PATRAN, MAGMA, … ) utilise conjointement des modèles octree et Brep. Les logiciels de CAO actuel (CATIA, UNIGRAPHICS, SOLIDWORKS, …) utilise le plus souvent des modèles hybride ou paramètrique. Les logiciels de Fabrication Assisté par Ordinateur (système d ’usinage automatique ou prototypage rapide) utilise uniquement des modèles Brep.

2.3.2 Enumération d'occupations spatiales et octree

Les solides sont représentés par une listes de voxels (éléments de volume). Les voxels sont des cellules spatiales occupées par le solide; ce sont généralement des cubes de taille fixe réparties selon une grille. En général, le solide est défini par la liste des coordonnées des centres des cellules.

Les avantages sont la facilité de validation, la simplicité de l'accès à un point donné et l’unicité spatiale assurée. Par contre, il faut relever qu'il n'y pas de structure entre les différentes parties d'un objet, que c'est coûteux en termes de mémoire et que par conséquent, il n'est pas possible de représenter des objets très complexes

La principale méthode de décomposition en cellules est l'octree qui est une généralisation des quadtrees.

Un quadtree est une représentation d'un objet 2D basée sur la subdivision récursive d'un carré en 4 carrés de même taille (quadrants)

A chaque stade du processus récursif, deux cas sont possibles:

1. L'objet ne recouvre pas complètement le quadrant; il est alors subdivisé en 4 nouveaux carrés

2. Le quadrant est plein ou vide; la subdivision est alors stoppée et le quadrant est marqué comme PLEIN (1) ou VIDE (0).

Deux réalisations sont possibles:

• matrice binaire de dimension N, où log2 N est le niveau maximum de récursion nécessaire dans la décomposition (coûteux en mémoire)

• arbre quadratique dont les noeuds correspondent aux quadrants

A la Figure 2-11, on montre un exemple.

Page 16: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 43 - Daniel Thalmann, EPFL-LIG

L'octree est donc une extension du quadtree à trois dimensions pour encoder des solides. Une région cubique est récursivement subdivisée en 8 octants (régions cubiques).

La Figure 2-12 nous montre l'ordre des octants tandis que la Figure 2-13 nous montre un exemple.

0

011

1111111

1 1 1 11 1 1 1

1 1 1

1 11 1

1 111

111 1 1 1

1 11 0000

0 011

000 0 0 0

00000

0 0000

0

5

7 8

9 10

11 12

13

15 16

17 1819 20

21 2223 24

1

a

c d

146

32

0

22

16

2017 2423

1195 12

18

1

7 8 10 13 15

19 21

b

4

noeud représentant une région pleine

noeud représentant une région vide

noeud avec descendants

Figure 2-11. a-d Exemple de quadtree. a l'objet 2D; b la représentation en matrice binaire correspondante; c la décomposition en quadrants; d la représentation en quadtree

6 7

2 3

4 5

1

0

6 7

75

3

Figure 2-12. Ordre des octants pour le codage octree

Page 17: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 44 - Daniel Thalmann, EPFL-LIG

y

x

z

vide

plein

partiel0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

Figure 2-13. Octree representation of a 3D objet

2.3.3 Constructive solid geometry (CSG)

Les solides sont représentés par des opérations booléennes entre primitives: union, intersection, et différence. On utilise des arbres binaires, avec un objet à chaque feuille et un opérateur à chaque noeud non-terminal. La Figure 2-14 nous montre un exemple.

La grammaire peut être décrite ainsi:

<arbre CSG> ::= <primitive> | <arbre CSG> <opérateur ensembliste> <arbre CSG>| <arbre CSG> <mouvement rigide> <paramètres de mouvement>

2.3.4 Représentations frontalières (Brep)

Un solide est représenté par sa frontière (faces, arêtes et sommets); le volume est borné par la surface. Les faces sont représentées en termes d'arêtes et de sommets.

Page 18: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 45 - Daniel Thalmann, EPFL-LIG

-

u

CSG tree solid

Figure 2-14. Un exemple d'arbre CSG

Pour garantir la validité des solides, on utilise les opérateurs d'Euler. Le principe est basé sur la loi d'Euler valable pour tout polyèdre régulier convexe simple:

V - E + F = 2

où V est le nombre de sommets, E le nombre d'arêtes et F le nombre de faces. On peut généraliser la loi pour les solides:

V - E + F = 2 (S - H) + R (Eq. 2.3-1)

S est le nombre de composants disjoints dans le solide, H est le nombre de trous dans le solide et R le nombre de cavités dans une face

Chaque fois qu'un opérateur est appliqué, l'équation (Eq. 2.3-1) reste valide. On a la table suivante des opérateurs d'Euler:

Operateur Explication MVSF Make a vertex, a face, and a shell MEV Make an edge and a vertex MEF Make an edge and a face KEMR Kill an edge and make a ring KFMRH Kill a face, make a ring and a hole KVFS Kill a vertex, a face, and a shell KEV Kill an edge and a vertex KEF Kill an edge and a face MEKR Make an edge and kill a ring MFKRH Make a face, kill a ring, and a hole M = Make (opérateur de construction) K = Kill (opérateur de destruction) V = Vertex E = Edge S = Shell R = Ring H = Hole

Page 19: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 46 - Daniel Thalmann, EPFL-LIG

L' effet de ces opérateurs est montré à la Figure 2-15.

FF

o

MEV

KEVF

VMVSF

KVSFoNIL V 2

FF MEKR

KEMRoo

V 2 V 2

V 1

V 1

V 1

MFKRH

KFMRH

F1 F1F2

MEF

KEF

o

o

V 2V 2

V 1

V 1

F1 F1 F2

V 1

Figure 2-15. Effets des cinq principaux opérateurs d'Euler et leurs inverses

Comme montré à la Figure 2-16, l'équation généralisée d'Euler peut être vérifiée à chaque pas avec des faces non planaires. La Figure 2-17 nous montre un bon exemple de solide construit avec les opérateurs d'Euler.

S=1 F=6

E=12 V=8 H=0 R=0

KEF

S=1 F=5

E=11 V=8 H=0 R=0

KEF

S=1 F=4

E=10 V=8 H=0 R=0

KEV

S=1 F=4 E=9 V=7 H=0 R=0

Figure 2-16. Retrait des arêtes d'un cube. Noter les faces non-planes, marquée avec une ligne mince

Page 20: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 47 - Daniel Thalmann, EPFL-LIG

a b c d

e f g h i

solide àconstruire

MVSF MEV MEVMEV

MEF MEV MEVMEV MEV

MEF MEFMEF MEF

MEV MEVMEV MEV

MEF

KEMR MEV MEVMEV MEV

MEF MEF

MEF MEFKFMRH

Figure 2-17. Un exemple de solide construit avec les opérateurs d'Euler

2.3.5 Modèle hybride

Le modèle hybride permet de cumuler les avantages de la représentation Brep et CSG en limitant au mieux leurs inconvénients respectifs. Dans ce modeleur, les primitives de base sont, soit celles du modèle CSG (cône, pyramide, cube,..), soit des solides définis par leurs frontières. Lors de chaque opération sur l’arbre de construction, les éléments frontières ( représentant la « peau de l’objet » ) sont construits. C ’est le modèle le plus souvent utilisé actuellement. Un exemple est montré à la Figure 2.18.

Figure 2.18 Exemple de modèle hybride

Avantages du modèle

• Le modèle Hybride permet de construire aussi simplement un solide aussi simplement qu ’avec un arbre CSG et même mieux puisque la création de primitives Brep est possible.

• Le modèle Hybride permet facilement d ’effectuer une visualisation rapide du solide.

• Le modèle Hybride permet d ’effectuer aisément des opérations complexes comme le calcul du volume d ’un solide, l ’appartenance d ’un point au solide etc.

• Le Hybride permet de disposer de la définition « exact » de la surface du solide.

• Le modèle Hybride offre la possibilité de placement de contraintes géométriques et de contraintes d ’assemblages.

U Représenté par

Les arêtes créées

Les faces créées

Page 21: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 48 - Daniel Thalmann, EPFL-LIG

Inconvénients du modèle

• Il est nécessaire de stocker une très grande quantité d ’informations.

• Il est nécessaire de maintenir en permanence la cohérence entre les deux représentations de l ’informations.

• Les opérations qui étaient très rapide avec la modélisation Brep le sont un peu moins car il est nécessaire de mettre en place un mécanisme de parcours pour retrouver les informations dans l ’arbre.

2.3.6 Le modèles paramétriques

Problème : Nous avons vu précédemment que les modèles utilisés pour modéliser les solides permettent de représenter de manière correcte la géométrie du produit à concevoir. Le problème est qu’il faut complètement la définir manuellement et qu’il est difficile de réutiliser des travaux d’une précédente conception.

Une conception d ’un solide dans cette modélisation est représentée par une multitude de paramètres. Dans ce type d’outils, un trou est défini par une profondeur ( ou une contrainte s’il est débouchant) et un diamètre ; le concepteur pourra donc à loisir faire varier ces paramètres afin d’obtenir le solide qui lui convienne. Certains systèmes permettent de trouver une valeur optimale pour chacun des paramètres en fonction des différentes contraintes à satisfaire par la conception à l’aide d’outils résolvant un système de contraintes. La Figure 2.19 montre un exemple.

Figure 2.19. Un exemple

Remarques

• Il utilise le plus souvent un modèle hybride pour représenter l’information purement géométrique.

• Le système calcule à chaque modification de la valeur d’un paramètre le modèle géométrique résultant.

• Il est possible qu’ensemble de valeurs des paramètres ne permet pas de proposer une géométrie.

• Le diamètre • La longueur • Le pas de vis • La forme de la tête

Page 22: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 49 - Daniel Thalmann, EPFL-LIG

2.4 Surfaces implicites et métaballes

2.4.1 Les objets mous et les métaballes

Une surface implicite est une surface consistant en un ensemble de points satisfaisant la fonction implicite arbitraire f telle que f(p) = 0. Comme les surfaces définies implicitement possèdent des attributs uniques et particulièrement utiles pour la modélisation, comme les propriétés de contraintes et la facilité de les fusionner, elles ont reçu une attention croissante dans la conception d’objets 3D. Un sous-ensemble particulier de surfaces implicites, communément connu sous le nom de “metaballs” métaballes est devenu un concept très en vogue en infographie. Comme les métaballes se combinent aisément et graduellement, elles permettent la création de formes organiques réalistes comme les humains ou les animaux.

La technique des métaballes est aussi bien adaptée au design interactif. On part d’une forme très sommaire consistant en un petit nombre de mataballs, puis on ajoute des détails simplement en éditant les métaballes: insertion, suppression, transformation, ajustement des paramêtres. Pourtant, la méthode des métaballes souffre de deux sérieux maux: premièrement, elle requière une habileté particulière pour construire des objets complexes en générant adéquatement les nombreuses fonctions de recouvrement. Deuxièmement, la conception interactive de forme demande une rétroaction rapide quand le designer édite ses métaballes. Malheureusement, le rendu de surface simplicites est souvent une tâche peu aisée et le lancer de rayons (voir Partie 3) est particulièrement coûteux. Enfin, la polygonalisation est une tâche ardue du point de vue algorithmique et difficile à réaliser en interactif comme on le verra dans la Section 2.4.2.

Les métaballes ellipsoides sont les plus simples et les plus faciles à utiliser. Elles sont particulièrement bien adaptéees à la modélisation d’os et de muscles comme on le verra dans la modélisation de personnages humains dans la Partie consacrée à l’animation. Une metaball ellipsoide peut être définie par 9 paramètres: le poids (w), la taille (longueur des axes 2a, 2b et 2c le long des directions principales), le centre (Ox, Oy, Oz) et l’orientation (angles d’Euler), (voir Figure 2-20).

Figure 2-20. Métaballe ellipsoide déformable

Page 23: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 50 - Daniel Thalmann, EPFL-LIG

Dans la technique des métaballes, une surface est définie comme une isosurface de functions de champ scalaire. Un tel champ est une fonction mathématique définie sur un volume de l'espace La valeur de champ en un point est définie en fonction de la distance à partir de points donnés.

Historiquement, la technique a d'abord été introduite par Blinn, en 1978, pour des champs de densité électronique autour d'un atome. Puis, l'équipe de Wyvill a montré qu'une grande classe de formes pouvaient être générées par un bon choix de la fonction de champ. Comme la méthode s’adaptait bien à la création d’objets mous, la méthode a pris tout d’abord le nom de soft objects (objets mous), puis plus récemment, c’est le nom de metaballs (métaballes) qui est devenu populaire. la fonction représente des formes arbitraires par des isosurfaces (surfaces correspondant à une valeur constante de la fonction). La function dépend elle d'un ensemble de points-clé. Un rayon d'influence R est défini et la contribution au champ faite par un point-clé situé au delà de R est nulle. La contribution à la position du point lui-même est la valeur maximale 1.

On peut citer quatre fonctions de champ type:

1. fonction exponentielle: fi( r) = exp(−ar2 )

2. fonction par morceaux quadratiques: fi( r) =1− 3(

rR i

)2 0 ≤ r ≤R i3

32

(1 −(r

R i))2 R i

3≤ r ≤ R i

3. polynome de degré 4: fi( r) = (1− (r

Ri)2 )2

4. polynome de degré 6: f i(r ) = −49

(rRi

)6 +179

(rRi

)4 −229

(rRi

)2 + 1

Comme les fonctions exponentielles sont plus coûteuses à calculer que les polynomes, on les préfère souvent. En fait, il y a deux critères à considérer lors de la construction d’une fonction de champ:

1. Comme déjà mentionné, la contribution à la position du point proprement dit doit être maximum et le champ doit tomber graduellement à 0 à la distance Ri

2. De manière à combiner graduellement les métaballes multiples, f'(0)=f'(Ri)=0.

Un simple polynome de degré bas ne peut répondre aux deux critères à la fois, ce qui sous entend d’utiliser soit des fonctions quadratiques par morceaux, soit des polynomes de degré supérieur. Mais de telles fonctions de champ ne donnent plus lieu à des solutions analytiques et conduisent donc à des méthodes itératives ou d’approximation pour obtenir par exemple l’intersection de ces surfaces avec des rayons comme dans le lancer de rayons (voir Partie 3).

La Figure 2-21 montre les étapes de fusion de deux métaballes. Un phénomène intéressant apparaît. Tant que les deux métaballes ne sont pas vraiment très proches l’une de l’autre, la forme fusionnée montre une courbure concave.

Page 24: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 51 - Daniel Thalmann, EPFL-LIG

Figure 2-21. Fusion de deux métaballes à des distances décroissantes

2.4.2 Polygonalisation des métaballes

Pour définir l'isosurface de valeur F, on utilise généralement une approximation polygonale. La partie de l'espace occupée par la surface est divisée par un maillage 3D en petits cubes. L'algorithme fonctionne en trois pas:

1. Tous les cubes qui sont intersectés par la surface sont trouvés ainsi: pour chaque point-clé, le champ est calculé pour tous les points de la grille le long d'un axe jusqu'à ce qu'un point avec une valeur de champ plus petit que F soit rencontré. Ce point et le précédent forment les extrémités d'une arête de cube qui intersecte la surface.

2. Chaque cube obtenu dans la première étape est alors examiné pour voir si les voisins ont aussi des intersections avec la surface. Si un voisin a une intersection, les voisins de ce cube doivent être inspectés et ainsi de suite jusqu'à ce que tous les cubes intersectés aient été trouvés.

3. Pour chaque cube intersecté par la surface, nous avons seulement 8 valeurs de champ aux sommets. On peut en tirer un ensemble de polygones qui représentent une partie de l'isosurface intersectant le cube. Le processus se déroule ainsi: premièrement, on cherche les points approximant l'intersection de l'isosurface avec les arêtes du cube. Puis ils sont connectés pour fabriquer les polygones. Si nous supposons que la valeur de la fonction pour l'isosurface est F, tout sommet avec une valeur plus grande que F est appelé HOT et tout autre COLD (voir Figure 2-22 et Figure 2-23)

Page 25: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 52 - Daniel Thalmann, EPFL-LIG

C C

CH

CC

C

HC

C

CC

C

H

C

H

C

CC

H

C

C

H

CC

C

H

C

Figure 2-22. Cubes avec les sommets chauds et froids. C cold, H hot

H

H H

H C C H C C H

C C C C H HH C

H C C H C H

H C H C

H C

Figure 2-23. Differents cas pour connecter les intersections. C cold, H hot

L'algorithme fonctionne ainsi:

pour chaque arête du cube <p,q> si p vaut HOT et q vaut COLD ou p vaut COLD et q vaut HOT alors créer l'intersection <p,q>; pour chaque face du cube Créer des arêtes comme dans la figure ci-dessus tant que il reste des arêtes faire start:=une arête quelconque polygon:=start; Retirer start du tableau d'arêtes next:=successeur de start; tant que next ? start faire

Page 26: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 53 - Daniel Thalmann, EPFL-LIG

polygon:=polygon+next; Retirer next du tableau des arêtes Sortir le polygone

Il faut noter que pour deux sommets adjacents p (COLD) et q (HOT) avec des valeurs de champs Fp et Fq, l'intersection I de l'isosurface avec pq est calculée en prenant comme distance d de p à I:

d =F − Fp

Fq − Fp

L'interpolation linéaire est raisonnable quand les cubes sont suffisamment petits.

2.5 Objets fractals

2.5.1 Introduction

Il existe un certain nombre de mécanismes permettant de décrire de nombreux phénomènes de croissance et de développement dont ceux que l'on rencontre dans la nature. Ces mécanismes sont qualifiés de mécanismes de réécriture. La technique de base consiste à partir d'un élément initial ou d'une configuration initiale et à successivement remplacer des parties en fonction d'un ensemble de règles. Ceci évoque tout de suite la possibilité de formaliser cette technique suivant des grammaires et des langages formels. Plusieurs approches, ayant des liens d'ailleurs, ont été proposées: les fractales, les IFS, les automates cellulaires et les L-systèmes.

2.5.2 Une approche intuitive aux objets fractals

Les objets naturels complexes comme les côtes marines, les montagnes, les galaxies et les nuages semblent dépasser les lois rigoureuses des scientifiques. Comment modéliser une montagne escarpée et sauvage avec la Géométrie d'Euclide ? C'est impossible à cause des formes irrégulières (au sens Euclidien du terme) du monde réel.

Pourtant, Mandelbrot (1975, 1977, 1982) a étudié la structure de ces objets naturels complexes et a réussi à les décrire à l'aide d'une nouvelle géométrie—la géométrie fractale. Il a montré que les objets construits dans cette géométrie, les objets fractals, peuvent représenter la forme des montagnes, les configurations d'étoiles dans le ciel, les réseaux de fluides dans l'organisme. La géométrie fractale est devenue un nouveau champ des mathématiques et semble fournir une meilleure vue sur notre univers.

Mais qu'est-ce qu'une fractale? Nous avons tendance à percevoir les choses seulement en une, deux ou trois dimensions. Avec les fractales, Mandelbrot va un pas plus loin en introduisant des structures fractionnaires qui occupent l'espace entre les points (0D), les lignes (1D), les plans (2D) et les volumes (3D). Une ligne est une ligne, mais une ligne avec une infinité de cassures, appelée courbe fractale, peut éventuellement remplir une feuille de papier: il y a donc une progression de une à deux dimensions. Ceci signifie intuitivement qu'une courbe fractale ne peut pas être qualifiée de 1D, mais a une dimension fractionnaire ou fractale. De plus, les courbes fractales contiennent une variété infinie de détail à chaque point le long de la courbe, il est ainsi impossible de connaître exactement leur longueur. C'est la première caractéristique de la géométrie fractale.

Page 27: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 54 - Daniel Thalmann, EPFL-LIG

Un objet fractal a une seconde caractéristique importante, c'est l'autosimilitude. Un objet avec une exacte autosimilitude a la propriété suivante: chaque petite portion, lorsqu'elle est agrandie, reproduit exactement une plus grande portion. Cette caractéristique est aussi essentielle pour modéliser la plupart des objets naturels complexes. Par exemple, considérons le cas d'un avion volant juste au-dessus d'une côte. On peut remarquer que les détails de la côte ont la même forme générale que la structure générale. Cependant, on ne peut pas dire que la côte est autosemblable. En fait, les objets de la nature sont rarement autosemblables; ils possèdent la propriété d'autosimilitude statistique.

2.5.3 Courbe de von Koch et dimension fractale

Un objet fractal peut être défini comme un objet à dimension fractionnaire. Pour comprendre ce concept, prenons un exemple. Considérons la courbe de von Koch obtenue en répétant l'opération consistant à réduire la courbe originale et à utiliser le résultat pour remplacer la partie médiane des segments de lignes formant la courbe originale. Considérons ainsi une courbe contenant deux segments (voir Figure 2-24a). Une copie de cette courbe originale est prise et réduite par un facteur de 1/3. Chaque segment de la courbe originale est divisé en trois parties et la partie du milieu est remplacée par la courbe réduite. le résultat est montré à la Figure 2-24b. On continue ainsi de suite. La Figure 2-24c nous montre la deuxième étape. Si on continue le processus, on remarque que le nombre de segments à chaque pas est multiplié par 4. Comme la longueur de chaque segment est 1/3 de la longueur du segment du pas précédent, la longueur de la courbe s'accroît d'un facteur 4/3 à chaque pas. Donc, finalement la longueur de la courbe fractale tend à devenir infinie à mesure que plus de détail est généré.

a

b

c d

Figure 2-24. Principe de construction de la courbe de von Koch. a. initiateur; b. générateur c. courbe après un pas d. Courbe après 2 pas

Quelle est la dimension de la courbe de von Koch? Pour répondre à cette question, considérons un segment de droite pouvant être divisé en N parties égales et semblables. Chaque partie est donc réduite d'un facteur r=1/N par rapport au tout. De même, quand une surface carrée est divisée en N parties de même aire et semblables à la surface originale, chaque partie est réduite d'un facteur r = 1/N1/2 par rapport au tout. En 3D, un solide cubique peut être divisé en N cubes égaux sans changer le volume total; dans ce cas, chaque petit cube est réduit d'un facteur r = 1/N1/3 par rapport au tout. La Figure 2-25 nous montre ces exemples. Nous pouvons généraliser cette approche et dire que tout objet autosemblable de dimension K peut être subdivisé en N parties égales; chaque partie étant réduite d'un facteur donné par l'équation:

Page 28: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 55 - Daniel Thalmann, EPFL-LIG

r =1NK

En isolant K, qui est la dimension:

K =ln N

ln 1r

Cette formule est utilisée pour calculer la dimension d'un objet fractal. Dans la cas de la courbe de von Koch, chaque segment est composé de 4 sous-segments (N=4) et chaque segment est réduit

d'un facteur r =13

. Nous obtenons K =ln 4ln 3

= 1.2619... Cela signifie que la courbe de von Koch

a une dimension d'environ 1.26.

N=3

N=4

N=8

r =13

r =14

r =183

Figure 2-25. Principes des dimensions entières

En dehors de la courbe de von Koch, un certain nombre "d'objets" artistiques et mathématiques peuvent être considérés comme des fractales:

• certaines oeuvres du peintre Escher • les pentagones de Dürer • l'ensemble de Cantor • la courbe de Peano • la courbe de Hilbert • le dragon • les objets de Sierpinski • l'ensemble de Julia • l'ensemble de Mandelbrot

Page 29: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 56 - Daniel Thalmann, EPFL-LIG

2.5.4 Méthode de génération de courbes fractales

Considérons tout d'abord un exemple simple consistant en deux segments PQ et QR (Figure 2-26a). On a déjà vu pour la courbe de Koch qu'à chaque pas, chaque segment est remplacé par le générateur. Supposons que l'initiateur et le générateur ont tous deux N segments, alors à chaque pas S, la courbe aura NS segments. Ces segments peuvent être numérotés dans l'ordre dans lequel ils ont été construits en utilisant un nombre de S digits dans la base N. La Figure 2-26b montre le second pas et la Figure 2-26c le troisième pas.

P R

Q

0 1

ß ß

000

001 010011

100

101

110

111

0 1

P

Q

R

00

1011

ß01

ß0 0

0 1

ß1 0

ß1 1

a) b)

c)

Figure 2-26. abc Construction d'une fractale

Pour construire la courbe, nous devons connaître l'angle ßi entre chaque segment i et le segment PR, ainsi que la longueur li du segment i relativement à la longueur PR. Comme le montre la table de la Figure 2-27, les règles sont simples.

Page 30: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 57 - Daniel Thalmann, EPFL-LIG

Figure 2-27. Angles et longueurs pour la construction d’une fractale

On voit qu'à chaque pas S, la fractalisation d'une courbe de N segments se fait ainsi:

1. Les angles et les longueurs de segment sont déterminés à partir du premier et du dernier sommet de la courbe.

2. Le i-ième segment est obtenu en décomposant le nombre i en S digits dans la base N; l'angle et la longueur de segment sont déterminés en utilisant les équations suivantes:

1. Pour l'angle: β i = βk

k∑

où βk est l'angle du segment k et k est un digit du nombre i. Par exemple, β101=β1+β0+β1.

2. Pour la longueur de segment: l i = lk

k∏

où lk est le segment k et k est un digit du nombre i. Par exemple, l101=l1 l0 l1.

Des exemples de fractales générées sont montrées à la Figure 2-28 et la Figure 2-29.

Segment numéro i Angle ßi longueur relative li 0 ß0=300 l0= 3 /2 1 ß1=-600 l1=1/2 00 ß00=ß0+ß0=600 l00=l0 l0=3/4 01 ß01=ß0+ß1=-300 l01=l0 l1= 3 /4 10 ß10=ß1+ß0=-300 l10=l1 l0= 3 /4 11 ß11=ß1+ß1=-1200 l11=l1 l1=1/4 000 ß000=ß0+ß0+ß0=900 l000=l0 l0 l0=3 3 /8 001 ß001=ß0+ß0+ß1=00 l001=l0 l0 l1=3/8 010 ß010=ß0+ß1+ß0=00 l010=l0 l1 l0=3/8 011 ß011=ß0+ß1+ß1=-900 l011=l0 l1 l1= 3 /8 100 ß100=ß1+ß0+ß0=00 l100=l1 l0 l1=3/8 101 ß101=ß1+ß0+ß1=-900 l101=l1 l0 l1= 3 /8 110 ß110=ß1+ß1+ß0=-900 l110=l1 l1 l0= 3 /8 111 ß111=ß1+ß1+ß1=-1800 l111=l1 l1 l1=1/8

Page 31: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 58 - Daniel Thalmann, EPFL-LIG

pas 3

génerateur initiateur

pas 1 pas 2

Figure 2-28. Courbe fractale

Page 32: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 59 - Daniel Thalmann, EPFL-LIG

Figure 2-29. Courbe fractale

2.5.5 Lignes fractales

L'algorithme correspond à construire une ligne fractale à partir d'un segment déterminé. La méthode subdivise récursivement l'intervalle t1t2, comme on le montre à la Figure 2-30 et génère une valeur scalaire pour le milieu du segment.

t tt1 m 2

F1

F2

Fm

Figure 2-30. Fractalisation d'un segment

Cette valeur est utilisée comme un déplacement du point milieu à chaque pas de la récursion; en fait, cette valeur est une distance reportée sur le vecteur normal au segment original. La valeur est calculée comme:

générateur

initiateur

fractale

Page 33: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 60 - Daniel Thalmann, EPFL-LIG

d = s.gauss(sd,tm)

où gauss est une fonction qui retourne une variable aléatoire de type gaussien avec une moyenne de zéro et une variance unitaire, sd est le germe, tm le milieu de l'intervalle, c'est-à-dire (t1+t2)/2 et s est la déviation standard donnée par:

s = k 2-iH

où i est le niveau d'itération, k un facteur d'échelle et H la dimension fractale.

On trouvera à la Figure 2-31 une implantation de l'algorithme de subdivision de l'intervalle [t1,t2] basé sur la formulation proposée par Fournier et al. en 1982.

Figure 2-31. Programmation de la subdivision récursive

La Figure 2-32 montre trois polylignes fractales différentes; la première étant obtenue en utilisant une perturbation selon y, la seconde une perturbation selon la normale au sous-segment et la troisième une perturbation selon x et y.

procedure FRACTAL(T1,T2,EPSI,H,SCALE:REAL; SEED:INTEGER); var F1,F2,RATIO,STD:REAL;

procedure SUBDIVIDE(F1,F2,T1,T2,STD:REAL); var FMID,TMID:REAL; begin if (T2-T1) > EPSI then begin TMID:=(T1+T2)/2; FMID:=(F1+F2)/2+GAUSS(SEED,TMID)*STD; STD:=STD*RATIO; SUBDIVIDE(F1,FMID,T1,TMID,STD); SUBDIVIDE(FMID,F2,TMID,T2,STD) end else lineabs (T2,F2) end;

begin F1:=GAUSS(SEED,T1)*SCALE; F2:=GAUSS(SEED,T2)*SCALE; moveabs (T1,F1); RATIO:=2**(-H); STD:=SCALE*RATIO; SUBDIVIDE(F1,F2,T1,T2,STD) end;

Page 34: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 61 - Daniel Thalmann, EPFL-LIG

Figure 2-32. Lignes fractales

2.5.6 Surfaces fractales Pour expliquer le principe, prenons un exemple simple basé sur des objets construits à l'aide de faces triangulaires. Nous divisons chaque triangle en 4 triangles en reliant "les points milieux" des arêtes des triangles. Mais là où la théorie des fractales intervient, c'est que "le point milieu" d'une arête est décalé du vrai milieu en utilisant des processus stochastiques. On obtient donc, comme on le voit à la Figure 9, 4 triangles qui ne sont plus dans le plan du triangle original, mais dans 4 plans différents. On recommence alors le processus récursivement pour chaque triangle, comme le montre la Figure 2-33. A la Figure 2-34, on trouvera un exemple de montagne générée à partir d’un triangle tandis que la Figure 2-35 nous montre un exemple de création de bonbons à l'aide de cette méthode.

Figure 2-33. Principe de subdivision

Page 35: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 62 - Daniel Thalmann, EPFL-LIG

niveau 3

niveau2

niveau 5

niveau 1

niveau 4

Figure 2-34. Génération de surface fractale par subdivision récursive de triangles

Figure 2-35. Création de bonbons en utilisant des surfaces fractales triangulaires

Page 36: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 63 - Daniel Thalmann, EPFL-LIG

Figure 2-36. Génération de surface fractale par subdivision récursive de quadrilatères

La subdivision récursive est indépendante du contexte et par conséquent aucune information n'est passée entre triangles ou quadrilatères adjacents, ce qui peut créer des incohérences et par conséquent des cavités. Un des problèmes importants à résoudre est donc celui de la consistance externe: comment élever le milieu d'une arête partagée par deux triangles toujours de la même façon ? Un moyen consiste à tenir à jour une table des arêtes.

Une autre méthode a été proposée par Fournier en 1982: la subdivision losange-carré. Au lieu de subdiviser seulement les arêtes, on subdivise en carré, puis en losange et ainsi de suite. Miller, en 1986, a proposé lui une subdivision carré-carré où les points sont générés sur un carré qui est la moitié de la taille du carré original. Les nouvelles valeurs sont prises dans la proportion 9:3:3:1, les points les plus proches ayant le plus grand poids. La Figure 2-37 compare les trois types de subdivision.

Page 37: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 64 - Daniel Thalmann, EPFL-LIG

itération i itération i+1

itération i+2

subdivision par arête des

triangles

subdivision losange-carré

subdivision carré-carré

Figure 2-37. Comparaison des types de subdivision

2.5.7 LES IFS

Considérons une ligne avec une origine et une direction comme montré à la Figure 2-38.

x0

Figure 2-38. Ligne de départ pour la génération d’IFS

x0 est la distance du point à l'origine et appliquons la transformation affine: x1 = a x0

où a est un nombre réel et x1 la nouvelle distance à l'origine. La position de x1 dépend de la valeur de a. On a: • si a < -1, x1 se déplacera à gauche et se trouvera plus loin de l'origine que x0 était

• si a = -1, x1 se déplacera à gauche et se trouvera à la même distance de l'origine que x0 était

• si -1 < a < 0, x1 se déplacera à gauche et se trouvera plus près de l'origine que x0 était

• si a = 0, x1 sera à l'origine

Page 38: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 65 - Daniel Thalmann, EPFL-LIG

• si 0 < a < 1, x1 se déplacera à droite et se trouvera plus près de l'origine que x0 était

• si a = 1, x1 se déplacera à droite et se trouvera à la même distance de l'origine que x0 était

• si a >1, x1 se déplacera à droite et se trouvera plus loin de l'origine que x0 était

On peut généraliser la transformation en faisant des itérations: xn+1 = a xn (x0 étant donné)

On peut encore additionner un terme de translation: xn+1 = a xn + b (x0 étant donné)

Dans le plan, on peut faire de même et on obtiendra des équations du type: xn+1 = a xn + b yn + e (x0 étant donné)

yn+1 = c xn + d yn + f (y0 étant donné)

Matriciellement:

Wxy

=

a bc d

xy

+

ef

La matrice a bc d

correspond à une concaténation d'une rotation d'angle θ et d'un changement

d'échelle de facteurs r et s. On peut l'écrire sous la forme:

Wxy

=

r cosθ −ssin θr sin θ scosθ

xy

+

ef

La matrice ef

représente une translation.

Prenons comme exemple:

Wxy

=

0.75 00 0.75

xy

+

00

et appliquons la à un carré centré à l'origine. Le résultat est un carré centré à l'origine mais de dimension 3/4 du carré original. En réappliquant la matrice beaucoup de fois, on voit que la figure tend vers un point: l'origine. Si maintenant on remplace le carré par un cercle ou par un arbre, le résultat sera le même.

Prenons maintenant les 3 transformations affines suivantes:

W1xy

=

0.5 00 0.5

xy

+

−5−5

Page 39: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 66 - Daniel Thalmann, EPFL-LIG

W2xy

=

0.5 00 0.5

xy

+

5−5

W3xy

=

0.5 00 0.5

xy

+

55

Prenons maintenant un carré centré à l'origine et appliquons les trois transformations affines, comme montré à la Figure 2-39.

(10,10)

(-10,-10)

W1 W2

W3

Figure 2-39. Transformations affines

En appliquant 5 fois et 10 fois les transformations, on obtient la Figure 2-40.

Figure 2-40. Après 5 et 10 applications (avec des carrés)

Si maintenant, on choisit un cercle plutôt qu'un carré, on obtient alors la Figure 2-41.

Page 40: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 67 - Daniel Thalmann, EPFL-LIG

Figure 2-41. Après 5 et 10 applications (avec des cercles)

On remarque que dans les deux cas, on obtient le triangle de Sierpinski. Ainsi quelle que soit la forme de départ, on obtient la même image qui n'est décrite donc que par 3 transformations affines. Le triangle de Sierpinski est ainsi un attracteur fractal des équations données. Ces équations constituent une version déterministe des IFS ou "Iterated Function Systems".

2.5.8 Le jeu du chaos

Considérons le jeu suivant: on a un triangle de sommets A (0,0), B (1,0) et C (1,1). On suppose qu'on a un dé avec deux faces A, deux faces B et deux faces C. On part d'un point et à chaque lancer de dé, on va dans la direction du sommet sélectionné en parcourant la moitié du trajet. A chaque fois, on marque le point et on repart de celui-ci. Par exemple, on part de A. On lance le dé, on tombe sur B, on va alors à mi-chemin en direction de B et on marque un point; on lance le dé, on suppose qu'on tombe sur C, on va alors à mi-chemin en direction de C et on marque un point; on lance le dé, on suppose qu'on tombe de nouveau sur C; on lance le dé, on suppose qu'on tombe sur A, on va alors à mi-chemin en direction de A et on marque un point; on lance le dé; on lance le dé, on suppose qu'on tombe sur B, on va alors à mi-chemin en direction de B et on marque un point; on lance le dé etc... La Figure 2-42 nous montre le principe.

A (0,0) B (1,0)

C (1,1)

Figure 2-42. Jeu du chaos

Page 41: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 68 - Daniel Thalmann, EPFL-LIG

Si on applique ceci 10000 fois, que va-t-on obtenir ? Notre bien connu triangle de Sierpinski (Figure 2-43).

Figure 2-43. Triangle de Sierpinski obtenu par jeu du chaos

Plus généralement, on peut exprimer les équations des transformations ainsi: xn+1 = 0.5 xn + 0.5 uk (x0 étant donné)

yn+1 = 0.5 yn + 0.5 vk (y0 étant donné)

où Pk = (uk, vk) correspondent aux coordonnées des sommets du triangle. On devra également donner les probabilités pk de chacune des transformations, ici on a:

pk = 1/3 k=1,3

Sous forme de matrice, on peut écrire:

Wxy

=

a bc d

xy

+

e ⋅ uf ⋅ v

On peut maintenant définir un IFS comme un ensemble de transformations affines munies chacune d'une probabilité. On trouvera ici des exemples produits par le programme “Fractal Attraction” avec les équations correspondantes. Le flocon de von Koch (Figure 2-44)

W1xy

=

0.333 00 0.333

xy

+

00.667

W2

xy

=

0.333 00 0.333

xy

+

0−0.667

W3

xy

=

0.333 00 0.333

xy

+

0.5770.333

W4

xy

=

0.333 00 0.333

xy

+

−0.5770.333

Page 42: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 69 - Daniel Thalmann, EPFL-LIG

W5

xy

=

0.333 00 0.333

xy

+

0.577−0.333

W6

xy

=

0.333 00 0.333

xy

+

−0.577−0.333

avec les probabilités pk =1/6

Figure 2-44. Flocon de von Koch obtenu avec des IFS (jeu du chaos)

La fougère (Figure 2-45)

W1xy

=

0 00 0.172

xy

+

0.496−0.091

W2

xy

=

0.076 0.312−0.257 0.204

xy

+

0.4940.133

W3xy

=

0.821 −0.0280.03 0.845

xy

+

0.0880.176

W4

xy

=

−0.024 −0.356−0.323 0.074

xy

+

0.470.26

avec les probabilités p1 =0.01, p2=0.075, p3=0.84 et p4=0.01

Figure 2-45. Fougère obtenue avec des IFS (jeu du chaos)

Page 43: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 70 - Daniel Thalmann, EPFL-LIG

2.6 Les L-systèmes

2.6.1 Introduction

Les L-systèmes ont été créés par Lindenmayer, principalement comme théorie mathématique du développement des plantes. Ils sont basés sur le mécanisme de réécriture. Comme les fractales, on part donc d'un objet initial (axiome) et d'un ensemble de productions ou règles de réécriture. Mais cette fois, tout sera exprimé avec une grammaire. Il y a cependant une grande différence avec les grammaires du type Chomsky. En effet, dans les L-systèmes les productions sont appliquées en parallèle alors que dans les grammaires de Chomsky, les productions sont appliquées séquentiellement. Les L-systèmes peuvent être déterministes ou non, dépendant du contexte ou non.

Les D0L-systèmes sont les plus simples des L-systèmes, ils sont déterministes et indépendants du contexte. Pour comprendre le principe, on va prendre un exemple simple. On considère des mots formés de deux lettres a et b qui peuvent se trouver autant de fois qu'on veut dans un mot. Chaque lettre est associée avec une règle de réécriture: a → ab (signifie que a est remplacé par ab) b → a (signifie que b est remplacé par a) On va supposer que l'axiome est la simple lettre b. On aura donc b remplacé par a qui sera remplacé par ab, chacune des deux lettres a et b seront remplacées en parallèle par ab et a. En continuant, on obtient, la Figure 2-46.

b

a

a b

a b a

a b a a b

a b a a b a b a

Figure 2-46. Exemple de dérivation dans un D0L-système.

Plus formellement, on a la définition suivante pour un L-système paramétrique:

Soit V un alphabet, V* l'ensemble de tous les mots formés à l'aide de V et V+ l'ensemble de tous les mots non-vides formés à l'aide de V. Un L-système paramétrique indépendant du contexte (0L-système) est défini comme un quadruplet ordonné G = (V, ? , ω, P) où V est l'alphabet du système, ? l'ensemble des paramètres formels, ω ∈(V x ℜ*)+ est un mot paramétrique non-vide appelé axiome et P l'ensemble fini des productions; P ⊂ (V x ? *) x C(? ) x (V x E(? ))*, où ℜ* est l'ensemble de toutes les séquences finies de paramètres réels, C(? ) est l'ensemble des expressions booléennes (ou conditions) et E(? ) l'ensemble des expressions arithmétiques. Une production simple

Page 44: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 71 - Daniel Thalmann, EPFL-LIG

sans condition (a, χ) ∈ P s'écrit comme a → χ. La lettre a et le mot χ sont appelés le prédécesseur et le successeur de la production. On fait l'hypothèse que pour toute lettre a ∈ V, il y a au moins un mot χ ∈ V* tel que a → χ. Si aucune production n'est explicitement spécifiée pour un prédécesseur donné a ∈ V, la production identité a → a est assumée faire partie de l'ensemble des productions P.

Un 0L-système est déterministe et noté D0L-système si et seulement si pour tout a ∈ V, il y a exactement un χ ∈ V* tel que a → χ.

En considérant qu'on note dans les productions la condition juste après le prédécesseur (devant le signe →), on peut donner comme exemple:

A(t): t>6 → B(t+1) C (t-1, t-2) Pour que la production ci-dessus s'applique, il faut que l'on fasse bien appel au module A avec un paramètre et que la condition t>6 soit remplie. Ainsi si on a A(8), cela jouera et le résultat sera le mot paramétrique B(9) C(7, 6).

2.6.2 Dérivation

Soit µ = a1...am un mot arbitraire construit à l'aide de V. Le mot ν = χ1...χµ ∈ V* est directement dérivé de (ou généré par) µ (ce qu'on note µ ⇒ ν) si et seulement si ai → χi pour tout i = 1...m. Un mot ν est généré dans une dérivation de longueur n s'il existe une séquence de mots µ0, µ1, ... µn telle que µ0 = ω, µn = ν, et µ0 ⇒ µ1 ⇒ ... ⇒ µn.

Exemple: filaments en biologie

ω: ar c'est l'axiome ou ici une simple cellule p1: ar → albr p2: al → blar p3: br → ar p4: bl → al En partant de l'axiome, on obtient la séquence de mots suivante:

ar albr blarar alalbralbr

blarblararblarar ...

2.6.3 La tortue LOGO dans les L-systèmes

Reprenons la tortue de LOGO et donnons un peu plus de formalisme pour l'intégrer dans les L-systèmes. On considérera les axes et les rotations décrits à la Section 1.4 (voir Figure 2-47).

Page 45: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 72 - Daniel Thalmann, EPFL-LIG

rH

rL

rU

+ -

&

^

/

\

Figure 2-47. Les opérateurs de la tortue 3D

Un état de la tortue est défini comme un triplet (x, y, α) où (x, y) représente la position de la tortue et l'angle α la direction à laquelle la tortue fait face. Etant donné un pas s et un incrément d'angle θ, la tortue peut alors répondre à un certain nombre de commandes que l'on représente par les symboles suivants dans la grammaire des L-systèmes: F(s) avancer d'un pas de longueur s et tracer un segment de la position originale à la nouvelle

position.

f(s) comme F, mais sans tracer de trait +(θ) tourner à gauche d'un angle θ autour de

r U

-(θ) tourner à droite d'un angle θ autour de r U

&(θ) tourner à gauche d'un angle θ autour de r L

^(θ) tourner à droite d'un angle θ autour de r L

/(θ) tourner à gauche d'un angle θ autour de r H

\(θ) tourner à droite d'un angle θ autour de r H

On peut ajouter 2 opérateurs qui nous permettront de représenter des structures arborescentes: [ empile l'état de la tortue (positions, orientations etc...) ] redéfinit l'état courant de la pile à partir de l'information sur la pile (dépile) Pour illustrer le principe des L-systèmes, nous allons considérer deux exemples. Tout d’abord, prenons un exemple très simple: le flocon de neige de von Koch (ou courbe de von Koch). Il est basé sur le L-système suivant:

ω: F(1) - (120)F(1)-(120)F(1)

p1: F(s) → F(s/3)+(60) F(s/3)-(120)F(s/3)+(60)F(s/3)

La production p1 est illustrée à la Figure 2-48. On obtient pour les 4 premiers pas (dérivations) le résultat montré à la Figure 2-49.

Page 46: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 73 - Daniel Thalmann, EPFL-LIG

Figure 2-48. Production F(s) → F(s/3)+(60) F(s/3)-(120)F(s/3)+(60)F(s/3)

Figure 2-49. Flocon de neige de von Koch

On remarque tout de suite l'analogie entre les fractales et les L-systèmes: l'initiateur est comparable à l'axiome et le générateur à la production successeur, le prédécesseur étant tout simplement une arête dans l'approche fractale.

Comme second exemple, nous prendrons une structure arborescente et introduirons aussi l’opérateur !(w) qui fixe l’épaisseur du trait à w:

ω: !(3)F(1,1)

p1: F(s, t) → t==1 → F(s,2)[- !(1)F(s,1)][+ !(1)F(s,1)]F(s,2) !(1)F(s,1)

p2: F(s, t) → t==2 → F(2*s,2)

p3: !(w) → w<2 → !(3)

Le module F a deux paramètres: la longueur de la ligne et si c'est un apex (t==1) ou un internoeud (t==2). Le résultat obtenu est montré à la Figure 2-50.

Page 47: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 74 - Daniel Thalmann, EPFL-LIG

Figure 2-50. Fractales obtenues avec des L-systèmes arborescents

2.6.4 Réécriture de noeuds

Dans ce type de réécriture, des polygones sont substitués aux noeuds de la courbe précédente, Cela suppose une extension de l'interprétation de la tortue pour représenter les sous-figures. Comme le montre la Figure 2-51, chaque sous-figure A d'un ensemble de sous-figures A est représentée par: • deux points de contact, appelés le point d'entrée PA et le point de sortie QA et

• deux vecteurs de direction, appelés le vecteur d'entrée r p A et le vecteur de sortie

r q A .

Lors de l'interprétation par la tortue d'une chaîne ν, le symbole A ∈ A est translaté et tourné de manière à aligner sont point d'entrée PA et sa direction

r p A avec la position et l'orientation courante

de la tortue. Une fois A placé, la tortue acquière bien entendu la position de sortie QA et la direction de sortie

r q A .

r p A

r q A

QA

P A

A

Figure 2-51. Sous-figure

Page 48: 2. LA MODELISATION GEOMETRIQUE - Freebigbozoid.free.fr/CoursLICENCE3/IMS/COURS_IN... · Le plan P 0 de la courbe est appelé le plan de base et le plan P 1 à une distance d est le

Infographie - 75 - Daniel Thalmann, EPFL-LIG

2.6.5 L-systèmes stochastiques

Comme dans le cas des fractales et de l'autosimilitude statistique, il est indispensable d'avoir un mécanisme non déterministe dans les L-systèmes afin d'éviter la régularité dans la génération. On peut ainsi définir des systèmes stochastiques. Un 0L-système stochastique est un quadruplet ordonné Gp = (V, ω, P, p) où V est l'alphabet, ω l'axiome et P l'ensemble des productions. p est une fonction de distribution:

p: P → ]0, 1] qui fait une correspondance entre l'ensemble des productions et l'ensemble des probabilités de ces productions

p.e. ω: F p1: F → F[+F]F[-F]F : 1 p2: F → F[+F]F : 1 p3: F → F[-F]F : 5 où pour chaque production les probabilités sont respectivement: 1/7, 1/7 et 5/7. On distinguera donc les L-systèmes déterministes et les L-systèmes stochastiques. La Figure 2-52 nous montre un exemple d’arbres produits avec un L-système stochastique. Les productions sont les suivantes: ω: FA(1) p1: A(k) → /(φ)[+(α)FA(k+1)]-(b)FA(k+1): min 1, (2k+1)/k2

p2: A(k) → /(φ)Β−(β)ΦA(k+1): min0, 1-(2k+1)/k2

Figure 2-52. Arbres produits avec un L-système stochastique

On trouvera des exemples plus complexes dans la Section consacrée à la représentation des arbres (voir Partie 3). Des extensions des L-systèmes ont été proposées pour introduire des champs de forces et plus généralement des équations différentielles pour l’animation (voir Partie 4).