Bo^ te a outils math ematiques de base pour …Bo^ te a outils math ematiques de base pour...

14
Boˆ ıte `a outils math´ ematiques de base pour l’infographie et l’animation par ordinateur Yves Chiricota, professeur DIM, UQAC Cours 8TRD147 11 Janvier 2017

Transcript of Bo^ te a outils math ematiques de base pour …Bo^ te a outils math ematiques de base pour...

Boıte a outils mathematiques de base pourl’infographie et l’animation par ordinateur

Yves Chiricota, professeurDIM, UQAC

Cours 8TRD147

11 Janvier 2017

2

Il est impossible d’envisager l’etude des methodes de l’animation par ordi-nateur sans des connaissance en algebre lineaire et en calcul. Les approches pluspoussees de l’animation par ordinateur (comme la simulation de surfaces deformableset de certains phenomenes physiques) demandent meme la maıtrise de la geometriedifferentielle. Nous verrons ici la base mathematique necessaire au cours. Ce docu-ment constitue en quelque sorte une boıte a outils mathematiques pour l’animationpar ordinateur.

1 Algebre matricielle

En gros, on pourrait dire que l’algebre matricielle est l’etude de l’arithmetique desmatrices. On muni l’ensemble des matrices d’une operation de somme et d’uneoperation de produit. Cependant, dans le cas des matrices, les choses ne sont pasaussi simple que si on travaille avec les nombres reels. Il faut tenir compte du formatdes matrices, elles ne sont pas toutes inversible, etc.

Grace a l’algebre matricielle, il est possible de representer des concepts beau-coup plus riches que ceux inherents a partir de l’algebre des nombres reels unique-ment. En effet, grace aux vecteurs et aux matrice, on peut representer sur or-dinateur des objects en plusieurs dimensions. Ces concepts nous servent aussi arepresenter certaines transformation de l’espace, en particulier celles necessaires asimuler des cameras virtuelles. Il serait trop long d’enumerer ici toutes les appli-cations de l’algebre lineaire en infographie. Nous allons voir les elements essentielspour le cours 8TRD147. Les themes abordes ici constituent le minimum necessairea entreprendre l’etude de l’infographie et l’animation par ordinateur.

1.1 Points et vecteurs

Intuitivement, on peut definir le plan euclidien comme etant un ensemble de pointspour lesquels on peut mesurer les distances et les angles. Notons qu’un point sert aindiquer une position. L’espace euclidien de dimension trois se definit aussi commeun ensemble de points pour lesquels on peut mesurer des angles et des distances. Apriori, dans un espace euclidien, aucun point ne se distingue des autres (il n’y a pasd’origine) et il n’y a pas de systeme de coordonnees. La notion d’espace euclidienest tres generale. En particulier, l’espace Rn des points exprimes a l’aide de trois

1. ALGEBRE MATRICIELLE 3

nombres reels forme un espace euclidien.

Un espace vectoriel est un ensemble de vecteurs muni d’operations de sommeet de produit par un scalaire qui satisfont un certain nombre de proprietes. Lesvecteurs servent a indiquer des directions d’un point a un autre. Plus formellement,un espace vectoriel reel (V,+, ·) est la donnee d’un ensemble de vecteurs V muni dedeux operations

+ : V ×V→ V

et

· : R×V→ V

satisfaisant les proprietes suivantes:

1. Pour tous u, v ∈ V, on a u+ v = v + u,

2. Pour tous u, v, w ∈ V on a u+ (v + w) = (u+ v) + w,

3. Il existe un element special 0 ∈ V tel que pour tout u ∈ V, on a u+ 0 = u,

4. Pour tout u ∈ V, il existe un element v ∈ V tel que u + v = 0 (en d’autresmot, chaque element possede un oppose),

5. Pour tout u ∈ V, on a 1 · u = u,

6. Pour tous α, β ∈ R, pour tout u ∈ V, on a α(β · u) = (αβ) · u

7. Pour tous α, β ∈ R, pour tout u ∈ V, on a (α + β) · u = α · u+ β · u

8. Pour tout α ∈ R, pour tous u, v ∈ V, on a α · (u+ v) = α · u+ α · v

Ces huit proprietes constituent les regles de calcul (permettant de simplifier desexpression, etc.) dans un espace vectoriel. Tout calcul valide sur les vecteurs doitpouvoir s’exprimer comme une suite d’operation correspondant a ces regles.

Exercice: Determiner l’interpretation geometrique des deux operations.

Un sous-espace vectoriel de V est un sous-ensemble de vecteur U tel que siu, v ∈ U et α ∈ R, alors u+ v ∈ U et αv ∈ U.

4

L’espace R3 muni de la somme et du produit par un scalaire usuels forme unespace vectoriel. On peut voir Rn de deux points de vue: comme un espace euclidienou comme un espace vectoriel.

Une des particularite qui distingue un espace euclidien d’un espace vectoriel estla presence d’un point qui represente l’origine de l’espace vectoriel. Dans le cas dede Rn, n’importe quel point pourrait servir d’origine, mais on utilise habituellementle point (0, 0, . . . , 0). Etant donne un espace euclidien, on peut en faire un espacevectoriel en choisissant un point, disons O, qui servira d’origine. Par la suite, onfait correspondre a chaque point P de l’espace euclidien un vecteur V (P ) de l’espacevectoriel en lui associant le segment de droite OP . Exercice: definir la somme et leproduit par un scalaire de telle sorte que cette construction donne un espace vectoriel.

En toute generalite, les vecteurs d’un espace vectoriel reel peuvent etre n’importequel type d’objets, pourvu que les conditions precedentes soient respectees. On peutdefinir des espaces vectoriels de fonctions, de quaternions, etc.

Il est utile de representer les vecteurs a l’aide de coordonnees. L’idee est dechoisir un ensemble B = {b1, b2, . . . bn} de n vecteurs lineairement independants et deles utiliser pour exprimer n’importe quel vecteur v de l’espace en calculant l’uniquedecomposition

v = a1b1 + a2b2 + · · ·+ anbn,

ou an ∈ R. Les nombres ai sont appeles coordonnees du vecteur v relativement a labase B. Il est interessant de remarquer que (a1, a2, . . . , an) est un vecteur de Rn. Ilfaut faire attention ne pas confondre coordonnees et vecteur dans le cas de Rn.

Pour la suite, nous ne considererons que l’espace vectoriel Rn muni de la sommede vecteur usuelle et du produit par un scalaire usuel:

u+ v = (u1, u2, . . . , un) + (v1, v2, . . . vn) = (u1 + v1, u2 + v2, . . . , un + vn)

et

α · u = α · (u1, u2, . . . , un) = (αu1, αu2, . . . , αun).

Exercice: Verifier que les huit proprietes sont satisfaites dans ce cas.

1. ALGEBRE MATRICIELLE 5

1.2 Systemes de coordonnees

Comme nous l’avons vu, on peut representer les vecteurs a l’aide de systemes decoordonnees. L’idee est de choisir une base ordonnee {b1, b2, . . . bn} pour exprimerles elements de Rn comme une combinaison lineaire

∑i aibi, avec an ∈ R. En fait,

lorsqu’on considere un vecteur (u1, u2, . . . un), c’est (de maniere implicite) relative-ment a la base canonique de Rn: (u1, u2, . . . un) =

∑i uiei, ou ei est le vecteur

comportant des 0 a chaque position sauf a la iieme ou on retrouve un 1 (e1 =(1, 0, 0, 0, . . . 0), e2 = (0, 1, 0, 0, . . . 0), . . .. Le concepts de systemes de coordonneespermet de simplifier les calculs inherents aux cameras virtuelles et de faciliter larepresentation des objets geometrique en infographie, entre autres choses.

On passe d’un systeme de coordonnees a un autre a l’aide de la multiplicationmatricielle (exercice).

1.3 Transformation de l’espace Euclidien

On peut appliquer certaines operations aux vecteurs et aux points. Les principalesoperations sont la rotation autour d’un axe, la translation selon un vecteur et lechangement d’echelle. On utilise generalement les matrices pour representer cestransformations, lorsqu’elles sont lineaires. L’utilisation des matrices presentes degrands avantages car elle permettent une implementation facile et que si T est unetransformation, representee par la matrice MT , appliquee a un vecteur V , on obtientT (V ) en multipliant avec M et V , c-a-d T (V ) = MV . De plus, la composition detransformation se traduit par le produit des matrices correspondantes. Cela presenteun avantage relativement a la performance du calcul lorsque l’on doit appliquer lameme serie de transformations a plusieurs vecteur comme c’est souvent le cas eninfographie.

Par exemple, la matrice suivant effectue une rotation autour de l’origine d’angleθ autour du vecteur (0, 0, 1):

cos θ sin θ 0− sin θ cos θ 0

0 0 1

6

La matrice suivant effectue represente une dilatation d’un vecteur (avec unevaleur specifique pour chaque axe):

sx 0 00 sy 00 0 sz

Coordonnees homogenes

Pour etre en mesure de representer une translation d’un vecteur de dimension troisa l’aide d’une matrice, on est force de travailler en dimension quatre. On representealors les vecteurs de R3 a partir de vecteurs de R4 a l’aide de coordonnees homogenes.La representation en coordonnees homogenes d’un point (x, y, z) est (wx,wy, wz, w),ou w 6= 0. Le point (X, Y, Z,W ), avecW 6= 0, correspond au point (X/W, Y/W,Z/W )dans R3. En fait, on a la correspondance:

(x, y, z)↔ (wx,wy, wz, w) = w(x, y, z, 1),

avec w ∈ R. On remarquera que plusieurs points en coordonnees homogenes corre-spondent a (x, y, z). En fait, point de l’espace R3 se trouve associe a une droite del’espace R4. On choisit habituellement le representant (1 ·x, 1 ·y, 1 ·z, 1) = (x, y, z, 1)pour representer (x, y, z).

La matrice

1 0 0 tx0 1 0 ty0 0 1 tz0 0 0 1

represente une translation de (tx, ty, tz) d’un vecteur (x, y, z) exprime en coor-

donnees homogenes.

Un des grand avantage de la notation matricielle pour representer les operationsest que la composition des operations se calcule a l’aide du produit de matrice.Ce calcul est souvent integre dans les cartes graphiques ce qui permet d’obtenir de

1. ALGEBRE MATRICIELLE 7

bonnes performances. Il est de plus interessant de noter que l’inverse d’une operations’obtient tout simplement en prenant l’inverse matriciel.

Par exemple, considerons un cube dont les coins opposes sont (2, 3, 4) et (3, 4, 5)et supposons que nous desirions effectuer une rotation d’angle θ par rapport a l’axedes z des six coins du cube. Il suffira d’appliquer une translation par le vecteur(−2,−3,−4) au coins du cube, ensuite la rotation, et ensuite la translation (2, 3, 4).Cette suite d’operation correspond au produit des matrices:

T−1RT,

ou

T =

1 0 0 −20 1 0 −30 0 1 −40 0 0 1

et R =

cos θ sin θ 0 0− sin θ cos θ 0 0

0 0 1 00 0 0 1

.

1.4 Vecteurs

Produit scalaire

Le produit scalaire de deux vecteurs est defini par:

〈u, v〉 = u1v1 + u2v2 + · · ·+ unvn,

ou u = (u1, u2, . . . , un) et v = (v1, v2, . . . , vn)).

La longueur |u| d’un vecteur u s’obtient avec la formule: |u| =√〈u, u〉.

• On remarquera que si u et v sont perpendiculaire, on a 〈u, v〉 = 0.

• 〈u, v〉 = 〈v, u〉.

• Soit α ∈ R, on a 〈αu, v〉 = α〈u, v〉 = 〈u, αv〉.

8

• On normalise un vecteur u avecu

|u|.

• Rappelons la formule〈u, v〉|u| |v|

= cos θ,

ou θ est l’angle entre les vecteurs u et v. Cette formule decoule de la loi descosinus: Si la longueur des cotes d’un triangle sont a, b et c et θ est l’angle entreles cotes correspondant aux longueurs a et b, alors on a c2 = a2 + b2−2ab cos θ.

• On a

〈u, v〉 < 0 si θ > π2,

〈u, v〉 = 0 si θ = π2,

〈u, v〉 > 0 si θ < π2.

Produit vectoriel

Le produit vectoriel de deux vecteur de R3 est defini par la formule suivante:

u× v = det

i j ku1 u2 u3v1 v2 v3

La valeur de ce determinant est egal a l’aire du parallelogramme defini par les

deux vecteurs.

On a les proprietes suivantes:

• u× v = −v × u.

• 〈u× v, u〉 = 〈u× v, v〉 = 0.

Le produit vectoriel est intrinsequement lie a la notion l’orientation dans R3.Selon que l’on travaille dans un systeme main droite ou main gauche, on obtientl’orientation du vecteur u × v formant un repere orthogonal avec la main et enimaginant que l’index correspond a u et le majeur a v. L’orientation du vecteuru× v est alors donne par le pouce.

1. ALGEBRE MATRICIELLE 9

Reflexion

Le calcul de reflexions est fondamental en infographie et en animation. Les applica-tions sont nombreuses: detection de collision, illumination, etc.

Tout d’abord, calculons la projection d’un vecteur sur un autre. Consideronsdeux vecteurs U et W . La projection de u sur w est un vecteur v = αw tel que〈u− v, w〉 = 0. Il s’en suit 〈u− v, w〉 = 〈u,w〉 − 〈v, w〉 = 〈u,w〉 − 〈αw,w〉 =

〈u,w〉 − α〈w,w〉, d’ou α = 〈u,w〉|w|2 La projection de u sur w est donc le vecteur

〈u,w〉|w|2

w.

La reflexion de u par rapport a w est l’unique vecteur u′ de meme longueurque u, inscrit dans le plan definit par u et w, qui fait le meme angle que u avec w etdifferent de u.

uv

w

u,

En s’aidant de la figure, on voit que u′ + 2(u− v) = u, d’ou

u′ = 2v − u = 2〈u,w〉|w|2

w − u.

10

2 Courbes et surfaces parametrees

L’utilisation de courbes et surfaces est fondamentale en animation par ordinateur.Les courbes servent a decrire des trajectoires, des parametres qui varient en fonctiondu temps, etc. Quant aux surfaces, elle permettent de modeliser les objets qui seretrouvent dans les scenes. On peut utiliser celles-ci pour representer des objetsrigides tel que des habitations, des vehicules, etc. Elle servent aussi a modeliser desobjets deformables comme les vetements, les vagues, etc.

2.1 Courbes

Pour nous, une courbe parametree est une fonction continue β : I → Rn, avecI = [a, b] un intervalle ferme. Il est parfois pratique d’utiliser un l’intervalle normalise[0, 1]. Par exemple, β(t) = (cos(t), sin(t), t), avec t ∈ [0, 6π] represente une courbe (aquoi correspond-elle?).

Une courbe parametree peur servir a representer la position d’un objet enfonction du temps. Elle peuvent aussi servir a representer des mouvement de camera.On utiliser alors une courbe avec n = 6, car une camera possede generalement sixdegres de liberte (quel sont-ils?).

Si on interprete une courbe β(t) comme la position d’un objet en fonction dutemps, la derivee β′(t) donne la vitesse instantanee au temps t. La distance parcourueentre les temps t0 et t1 s’obtient en calculant l’integrale suivante:∫ t1

t0

|β′(t)| dt.

La longueur totale de la courbe est∫ b

a

|β′(t)| dt.

Une courbe parametree par longueur est telle que∫ ua|β′(t)| dt = t. En d’autres

termes, la longueur au point u est egale a u (le parametre est egal a la longueur dela courbe).

2. COURBES ET SURFACES PARAMETREES 11

2.2 Surfaces

Pour nous, une surface parametree est une fonction continue σ : I1×I2 → Rn, ou I1 =[a, b] et I2 = [c, d] sont des intervalles fermes et connexes. On utilise parfois I1 = I2 =[0, 1]. Voici un exemple de surface parametree: σ(u, v) = (sin (u) cos (v) , cos (u) cos (v) , sin (v)),avec u ∈ [0, 2π], et v ∈ [0, π].

Etant donne une surface σ = σ(u, v), il est parfois necessaire de calculer le plantangent au point σ(u0, v0) (par exemple pour calculer comment un objet projete surle surface rebondit). On l’obtient a partir des derivees partielles evaluees en (u0, v0).Le plan est definit par le point

σ(u0, v0)

et les vecteurs∂σ

∂u(u0, v0) et

∂σ

∂v(u0, v0).

On utilise aussi les notations σu = ∂σ∂u

et σv = ∂σ∂v

.

L’utilisation du vecteur normal N(u0, v0) en un point (u0, v0) de la surface estfondamental pour le calcul de l’eclairage et certaines techniques de rendu de scenes(tel le bump mapping). Ce vecteur est tout simplement obtenu par la formule

N(u0, v0) =∂σ

∂u(u0, v0)×

∂σ

∂v(u0, v0).

Nu

σσ

σ

(u0, v0)

Il est clair que ce vecteur est perpendiculaire au plan tangent a la surface σ aupoint σ(u0, v0).

12

3 Courbes et surfaces polygonales

Les courbes et surfaces telles que nous venons de les voir sont des objets mathematiquesappartenant au domaine continu. Leur codage sous la forme de structures de donneess’impose pour etre en musure de faire dessiner ces objets par un moteur graphique.

Le principe general pour ce codage est d’echantillonner le domaine de definitionde la courbe ou de la surface et de creer de segments ou des triangles a partir de ceteechantillonnage.

Pour une courbe, β : [a, b]→ Rn, on definit les segments

[β((a+ i(b− a)

n), β((a+ (i+ 1)

(b− a)

n],

avec i = 0, 1, . . . , n− 1. Le nombre se segment sera n− 1.

Pour une surface σ : [a, b]× [c, d]→ Rn, on calcule une grille formee des pointsP (i, j) suivant

σ(a+ ib− an

, c+ jd− cm

),

ou i = 0, 1, . . . , n et j = 0, 1, . . . , m. La grille contiendra (n+ 1)(m+ 1) points.

Cette grille est ensuite utilisee pour definir les triangles qui serviront a approx-imer la surface. Cette operation s’appelle “discretiser” la surface.

4 Geometrie dans R3.

Le “calcul geometrique” revet une importance particuliere en infographie et en an-imation par ordinateur. Les applications sont nombreuses: algorithmes de lance derayon, detection de collision dans la simulation, etc.

4. GEOMETRIE DANS R3. 13

4.1 Coplanarite

Considerons deux vecteurs non co-lineaires U, V ∈ R3. Un vecteur W est co-planairea U et V s’il existe des valeurs α, β ∈ R3 telles que W = αU + βV . On peut doncdeterminer la co-planarite en resolvant le systeme d’equations lineairesW = αU+βV .On ontient alors les coordonnees de W relativement aux vecteur U et V .

Une autre approche pour determiner si W est co-planaire avec U et V est decalculer le determinant det(W,U, V ).

Il est parfois utile de determiner si quatre points A,B,C,D dans R3 sont co-planaire ou non. On peut le determiner comme suit en posant U = B−A, V = C−Aet W = D − A et en appliquant la methode precedente.

4.2 Projection d’un point dans un plan

Considerons le plan Π (passant par l’origine) defini les vecteurs (non colineaires) U etV . La projection Q d’un point W dans le plan Π s’obtient en resolvant les equationssuivantes:

〈W −Q,U〉 = 0,

〈W −Q, V 〉 = 0,

〈W −Q,U × V 〉 = 0.

4.3 Intersection de deux droites planaires

La forme parametrique de la droite qui passe par les points X et Y dans R3 estX + t(Y −X). On remarquera que c’est un cas particulier de courbe. Consideronsles deux droites

d0(t) = P0 + t(P1 − P0)

et

d1(t) = Q0 + t(Q1 −Q0)

14

avec P0 = (x0, y0), P1 = (x1, y1), Q0 = (u0, v0), Q1 = (u1, v1). On trouve l’intersectionen posant d0(a) = d1(b) et en resolvant pour a et b le systeme de deux equationsdeux inconnues.

4.4 Test pour determiner si un point est a l’interieur d’untriangle

Soit P0, P1, P2 les points definissant le triangle non degenere. Considerons un pointW co-planaire avec le triangle (si le point n’est pas inscrit dans le meme plan, il n’estpas a l’interieur).

Exprimer le vecteur W − P0 comme combinaison lineaire des vecteurs P1 − P0

et P2−P0, c.-a-d. W −P0 = α(P1−P0) + β(P2−P0). Si α+ β ≤ 1, 0 ≤ α et 0 ≤ β,alors W est a l’interieur du triangle.

4.5 Intersection d’une droite et d’un plan passant par l’originedans R3.

Supposons la droite definie a partir de deux points P et Q. Soit U et V deuxvecteurs generateurs du plan. L’intersection W de la droite et du plan est de laforme W = Q+ α(P −Q). On trouve α en resolvant le systeme d’equation suivant:

〈U × V ,Q+ α(P −Q)〉 = 0.

4.6 Intersection d’une droite et d’un triangle dans R3.

On calcule l’intersection W de la droite et du plan. On determine ensuite si W esta l’interieur du triangle.