Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.
2 Triangles de Bézier Nous avons défini les surfaces de Bézier à partir dune grille rectangulaire de points de contrôle. Les triangles de Bézier de degré n sont plutôt définis à partir dune grille triangulaire de points de contrôle de la forme : { P ijk, i, j, k 0, i + j + k = n } P 300 P 210 P 120 P 030 P 201 P 102 P 003 P 012 P 021 P 111 n = 3 n + 1 points de contrôle pour chaque côté du triangle et (n + 1) (n +2) au total. 2 But : améliorer la forme géométrique et les techniques dillumination dun maillage grossier.
3 Triangles de Bézier S(u, v) = B ijk (u, v) P ijk i + j + k = n i, j, k 0 n où B ijk (u, v) = n! u i v j (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 P v P (1 – u – v) P 001,u, v 0,u + v 1 u, v 0,u + v 1 Un triangle
4 Signification de la fonctionB ijk (u, v) Rappel : Loi multinomiale M(n, p 1, p 2, …, p k ) : généralisation dune binomiale Soit un ensemble déléments, partitionné en k classes C 1, C 2, …, C k. Chaque élément a les probabilités p 1, p 2, …, p k dappartenir resp. aux classes C 1, C 2, …, C k avec p 1 + p 2 + …+ p k = 1. On effectue n tirages au hasard indépendants avec remise. En posant X i : # déléments de la classe C i obtenus en n tirages, i = 1, 2, …, k, P(X 1 = x 1, X 2 = x 2, …, X k-1 = x k-1 ) =n!p 1 x 1 p 2 x 2 … p k x k x 1 ! x 2 ! … x k ! Il sensuit que B ijk (u, v) = P(X 1 = u, X 2 = v) avec k = 3. n
5 Triangles de Bézier Propriétés : cas général S(0, 0) = P 00n S(1, 0) = P n00 S(0, 1) = P 0n0 S(0, v) = courbe de Bézier avec comme points de contrôle P 00n, P 01n-1, …, P 0n0. S(u, 0) = courbe de Bézier avec comme points de contrôle P 00n, P 10n-1, …, P n00. S(u, 1-u) = courbe de Bézier avec comme points de contrôle P 0n0, P 1n-10, …, P n00. La surface est à lintérieur de lenveloppe convexe des points de contrôle. En appliquant une transformation affine T aux points de contrôle définissant la surface, cela revient à appliquer la même transformation T à lensemble des points de la surface.
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 B ijk (u, v, w) P i+1,j,k i + j + k = n-1 i, j, k 0 n-1 S(u, v, w) v = n B ijk (u, v, w) P i,j+1,k i + j + k = n-1 i, j, k 0 n-1 S(u, v, w) w = n B ijk (u, v, w) P i,j,k+1 i + j + k = n-1 i, j, k 0 n-1 où w = 1 – u – v.
7 Triangles de Bézier Calcul de la normale (suite) Rappel : La dérivée directionnelle de S(u, v, w) par rapport à la direction d = (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 domaine u + 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 directionnelle de S par rapport à d 1 et celle de S par rapport à d 2.
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).
9 Triangles de Bézier cubique ( n = 3) S(u, v, w) = B ijk (u, v, w) P ijk i + j + k = 3 i, j, k 0 3 u, v, w 0,u + v + w = 1 S(u, v, w) = u 3 P v 3 P w 3 P u 2 vP u 2 wP uv 2 P uw 2 P v 2 wP vw 2 P uvwP 111. ou encore, S(u, v, w) u = 3u 2 P uvP uwP v 2 P w 2 P vwP 111 S(u, v, w) v = 3v 2 P u 2 P uvP vwP w 2 P uwP 111 S(u, v, w) w = 3w 2 P u 2 P uwP vwP v 2 P uvP 111 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 :
10 Triangles de Bézier cubique ( n = 3) Amélioration de la forme géométrique dun maillage triangulaire SoientQ 1, Q 2 et Q 3 les sommets dun triangle du maillage, N 1, N 2 et N 3 les normales des sommets de ce triangle, 1. Les 3 sommets Q 1, Q 2 et Q 3 correspondent respectivement aux points de contrôle P 300, P 030 et P Rappel :la projection dun point Q sur un plan de normale N unitaire passant par P correspond à Q + N où = N. (P – Q). il sagit de remplacer ce triangle du maillage par un triangle de Bézier cubique sans se servir des données géométriques des facettes voisines. Q1Q1 Q2Q2 Q3Q3
11 Triangles de Bézier cubique ( n = 3) P 210 = projection de Q 1 + (Q 2 - Q 1 ) / 3 sur le plan tangent à Q 1 de normale N 1 passant par Q 1, = Q 1 + (Q 2 - Q 1 ) / 3 + [N 1. (Q 1 – Q 2 ) / 3] N 1 / 3 3. Calcul des sommets intermédiaires P 201, P 210, P 102, P 120, P 012 et P 021 sur les arêtes. Considérons le cas de P 210. Q 1 =P 300 P 210 P 120 Q 2 = P 030 P 201 P 102 Q 3 = P 003 P 012 P 021 P 111 Q1Q1 Q2Q2 P 210
12 Triangles de Bézier cubique ( n = 3) 4. Calcul du sommet P 111. PosonsE = (P P P P P P 021 ) / 6, V = (Q 1 + Q 2 + Q 3 ) / 3, alors P 111 = E + ½(E – V). Tiré de Farin, Gerald, Triangular Bernstein-Bézier Patches. Computer Aided Geometric Design, vol. 3, no. 2, pp , Lobjectif visé est de ne pas trop dévier du triangle original afin de préserver la forme de lobjet et éviter des interférences avec les autres triangles de Bézier. Remarque : Pour appliquer un modèle dillumination, il faut pouvoir calculer 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 N 1 + u N 2 + v N Construire un triangle de Bézier N(u, v, w) (n = 2) à partir des normales N 1, N 2 et N 3 ainsi que des points Q 1, Q 2 et Q 3..
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 , 2001.