vers l'index général de l'aide
Créer des triangles sans épaisseur.
POV-Ray 2.0 +sup.
triangle { Point_1, // vecteur Point_2, // vecteur Point_3 // vecteur (..modificateurs d'objets..) (..transformations..) (..matériau..) }
Rien de bien compliqué, le triangle est la surface comprise entre les trois points donnés. Si les trois points sont alignés (= font partie d'une même droite), POV-Ray ne pourra pas matérialiser le triangle et vous signalera un 'triangle dégénéré', sans toutefois empêcher le rendu de la scène.
Il est également possible de spécifier un vecteur de normale à chaque coin du triangle, ce qui a pour effet de "tordre" visuellement le triangle, mais sans changer sa géométrie réelle. Seuls l'ombrage, les highlights et les réflexions seront modifiés. Par défaut, ces vecteurs de normale sont perpendiculaires à la surface du triangle.
smooth_triangle { Point_1, // vecteur Normale_1, // vecteur Point_2, // vecteur Normale_2, // vecteur Point_3 // vecteur Normale_3, // vecteur (..modificateurs d'objets..) (..transformations..) (..matériau..) }
Voici un exemple très simple de smooth_triangle , qui montre très clairement comment la "fausse" normale des coins affecte l'apparence du triangle.
//les éléments classiques... #include "colors.inc" camera {location <100,100,100> direction z*1 look_at <0,0,0>} light_source {<40,50,30> White*2} //la petite macro pour faire les flèches #macro Fleche (Pt1,Pt2,Rayon) union { cylinder {Pt1,Pt2,Rayon} cone {0,Rayon,(vnormalize(Pt1-Pt2))*(Rayon*20),Rayon*3 translate Pt2} no_shadow } #end //déclaration des coins et des normales correspondantes #declare P1=<20,-20,70>; #declare N1=<0,.5,1>; #declare P2=<70,0,-40>; #declare N2=<.1,.5,0>; #declare P3=<-50,40,-20>; #declare N3=<0,1,0>; //le triangle smooth_triangle {P1,N1,P2,N2,P3,N3 pigment {YellowGreen} finish {phong .9}} //les flèches object {Fleche (0,vnormalize(N1)*5,.1) pigment {OrangeRed} scale 10 translate P1} object {Fleche (0,vnormalize(N2)*5,.1) pigment {OrangeRed} scale 10 translate P2} object {Fleche (0,vnormalize(N3)*5,.1) pigment {OrangeRed} scale 10 translate P3}
Et le résultat :
Dépourvus d'épaisseur, et donc d'intérieur/extérieur, les triangles ne fonctionnent bien qu'avec les unions.
Dans le cas où on associe plusieurs smooth_triangle , la normale de deux ou trois coins qui se rencontrent doit être la même. Plus précisément, elle doit être, pour bien faire, égale au produit des trois normales individuelles. Mais, à de rares exceptions près, ce ne sont pas des ajustements que l'on fait "à la main", et d'excellents utilitaires s'en chargeront à votre place !
Les triangles peuvent être efficacement associés dans une entité appelée mesh , ce qui, lorsqu'on a uniquement des triangles, est bien mieux qu'une union. Voyez la page consacrée aux mesh pour plus de détails.
Rédacteur: Fabien Mosen