Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters,...

13
Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Renderi A K Peters, 2002, 835p.

Transcript of Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters,...

Page 1: Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.

Triangles de Bézier

Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering.A K Peters, 2002, 835p.

Page 2: Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.

2

Triangles de BézierNous avons défini les surfaces de Bézier à partir d’une grillerectangulaire de points de contrôle.Les triangles de Bézier de degré n sont plutôt définis à partir d’unegrille triangulaire de points de contrôle de la forme :

{ Pijk, i, j, k 0, i + j + k = n }P300

P210

P120

P030

P201

P102

P003 P012 P021

P111n = 3

n + 1 points de contrôle pour chaque côté du triangle et (n + 1) (n +2)au total. 2But : améliorer la forme géométrique et les techniques d’illuminationd’un maillage grossier.

Page 3: Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.

3

Triangles de Bézier

S(u, v) = Bijk(u, v) Pijk

i + j + k = n i, j , k 0

n

où Bijk(u, v) = n! ui vj (1 – u – v)k, i + j + k = n

i! j! k! i, j , k 0

n

0 autrement.

Cas particulier : n = 1

S(u, v) = u P100 + v P010 + (1 – u – v) P001, u, v 0, u + v 1

u, v 0, u + v 1

Un triangle

Page 4: Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.

4

Signification de la fonction Bijk(u, v)

Rappel :

Loi multinomiale M(n, p1, p2, …, pk ) : généralisation d’une binomiale

Soit un ensemble d’éléments, partitionné en k classes C1, C2, …, Ck.

Chaque élément a les probabilités p1, p2, …, pk d’appartenir resp. auxclasses C1, C2, …, Ck avec p1 + p2 + …+ pk = 1.

On effectue n tirages au hasard indépendants avec remise.

En posant Xi : # d’éléments de la classe Ci obtenus en n tirages,i = 1, 2, …, k,

P(X1 = x1, X2 = x2 , …, Xk-1 = xk-1) = n! p1

x1 p2

x2 … pk

xk

x1! x2! … xk!Il s’ensuit que Bijk(u, v) = P(X1 = u, X2 = v) avec k = 3.n

Page 5: Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.

5

Triangles de Bézier

Propriétés : cas général

S(0, 0) = P00n S(1, 0) = Pn00 S(0, 1) = P0n0

S(0, v) = courbe de Bézier avec comme points de contrôleP00n, P01n-1, …, P0n0.

S(u, 0) = courbe de Bézier avec comme points de contrôleP00n, P10n-1, …, Pn00.

S(u, 1-u) = courbe de Bézier avec comme points de contrôleP0n0, P1n-10, …, Pn00.

La surface est à l’intérieur de l’enveloppe convexe des points decontrôle.

En appliquant une transformation affine T aux points de contrôle définissant lasurface, cela revient à appliquer la même transformation T à l’ensembledes points de la surface.

Page 6: Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.

6

Triangles de Bézier

Calcul de la normale

Jusqu’à maintenant, nous avons procédé comme suit :S(u, v) x S(u, v) dans le cas où S est définie dans le carré unité. u v

Dans le cas des triangles de Bézier où u + v 1, u, v 0, on a :

S(u, v, w) u

= n Bijk(u, v, w) Pi+1,j,k

i + j + k = n-1i, j , k 0

n-1

S(u, v, w) v

= n Bijk(u, v, w) Pi,j+1,k

i + j + k = n-1i, j , k 0

n-1

S(u, v, w) w

= n Bijk(u, v, w) Pi,j,k+1

i + j + k = n-1i, j , k 0

n-1

où w = 1 – u – v.

Page 7: Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.

7

Triangles de Bézier

Calcul de la normale (suite)

Rappel :

La dérivée directionnelle de S(u, v, w) par rapport à la directiond = (e, f, g) est : e S(u, v, w) + f S(u, v, w) + g S(u, v, w)

u v w

où d désigne la différence entre 2 points dans le domaineu + v + w = 1; u, v, w 0.

Par conséquent, e + f + g = 0.

La normale à (u, v, w) est le produit vectoriel de la dérivée directionnellede S par rapport à d1 et celle de S par rapport à d2.

Page 8: Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.

8

Triangles de Bézier

Cas particulier : S(u, v, w) = u P + v Q + w R, u + v + w = 1,u, v, w 0.

S(u, v, w) u

= P

S(u, v, w) v

= Q

S(u, v, w) w

= R

La dérivée directionnelle de S par rapport à (-1, 1, 0) est Q – P et celle de S par rapport à (-1, 0, 1) est R – P.

La normale de S à (u, v, w) est donc (Q – P) x (R – P).

Page 9: Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.

9

Triangles de Bézier cubique ( n = 3)

S(u, v, w) = Bijk(u, v, w) Pijk

i + j + k = 3 i, j , k 0

3 u, v, w 0, u + v + w = 1

S(u, v, w) = u3 P300+ v3 P030 + w3 P003 +3u2vP210 + 3u2wP201 + 3uv2P120 +3uw2P102 + 3v2wP021 + 3vw2P012 +6uvwP111.

ou encore,

S(u, v, w) u

= 3u2 P300+ 6uvP210+ 6uwP201+ 3v2P120+ 3w2P102+ 6vwP111

S(u, v, w) v

= 3v2P030+ 3u2P210+ 6uvP120 + 6vwP021+ 3w2P012+ 6uwP111

S(u, v, w) w

= 3w2P003+ 3u2P201+ 6uwP102 + 6vwP012+ 3v2P021+ 6uvP111

S(u, v, w) - S(u, v, w) v u

x S(u, v, w) - S(u, v, w) w u

n(u, v, w) =

ce qui donne :

Page 10: Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.

10

Triangles de Bézier cubique ( n = 3)

Amélioration de la forme géométrique d’un maillage triangulaire

Soient Q1, Q2 et Q3 les sommets d’un triangle du maillage,N1, N2 et N3 les normales des sommets de ce triangle,

1. Les 3 sommets Q1, Q2 et Q3 correspondent respectivement auxpoints de contrôle P300, P030 et P003.

2. Rappel : la projection d’un point Q sur un plan de normale N unitaire passant par P correspond à Q + N où

= N .(P – Q).

il s’agit de remplacer ce triangle du maillage par un triangle de Béziercubique sans se servir des données géométriques des facettes voisines.

Q1

Q2

Q3

Page 11: Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.

11

Triangles de Bézier cubique ( n = 3)

P210 = projection de Q1 + (Q2 - Q1) / 3sur le plan tangent à Q1

de normale N1 passant par Q1, = Q1 + (Q2 - Q1) / 3 +

[N1 .(Q1 – Q2) / 3] N1 / 3

3. Calcul des sommets intermédiaires P201, P210, P102, P120, P012 et P021 sur les arêtes.

Considérons le cas de P210.

Q1=P300

P210

P120

Q2= P030

P201

P102

Q3= P003P012 P021

P111

Q1

Q2

P210

Page 12: Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.

12

Triangles de Bézier cubique ( n = 3)

4. Calcul du sommet P111.

Posons E = (P201 + P210 + P102 + P120 + P012 + P021 ) / 6,V = (Q1 + Q2 + Q3 ) / 3,

alors P111 = E + ½(E – V).

Tiré de Farin, Gerald, Triangular Bernstein-Bézier Patches. Computer Aided Geometric Design, vol. 3, no. 2, pp. 83-127,1986.

L’objectif visé est de ne pas trop dévier du triangle original afin depréserver la forme de l’objet et éviter des interférences avec les autrestriangles de Bézier.

Remarque :Pour appliquer un modèle d’illumination, il faut pouvoircalculer la normale à la surface au point (u, v, w) :

1. On calcule la normale au triangle de Bézier cubique : voir .

2. Approche linéaire : N(u, v, w) = w N1 + u N2 + v N3.

3. Construire un triangle de Bézier N(u, v, w) (n = 2) à partir desnormales N1, N2 et N3 ainsi que des points Q1, Q2 et Q3.

.

Page 13: Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.

13

Triangles de Bézier cubique ( n = 3)

Maillage triangulaire

Modèle de Gouraud

Approche linéaire et quadratique :calcul de la normale

Vlachos, Alex, Jörg Peters, Chas Boyd, and Jason L. Mitchell, Curved PN Triangles.ACM Symposium on Interactive 3D Graphics 2001, pp. 159-166, 2001.