Il est assez facile de comprendre ce qu'est un prisme : c'est simplement une surface plane (délimitée par une courbe) à laquelle on donne une épaisseur. Tout ce que l'on aura à faire, c'est donner à POV-Ray la forme de la courbe, et l'épaisseur du prisme.

En réalité, le plus compliqué est de donner la forme de la courbe à utiliser. Pour cela, il y a 2 méthodes pour le faire :
linear_spline et
cubic_spline.
linear_spline
La première méthode, la plus simple, consiste à donner une liste de points, qui seront reliés entre eux par des segments droits : c'est le cas pour la flèche de gauche de l'exemple. Cela revient en fait à faire un polygone (vous vous souvenez des polygones, hein ?

).
Attention : pour que la courbe définie soit bien fermée, il faut que le premier et le dernier point que l'on donne soient les mêmes. Si ce n'est pas le cas, POV-Ray devrait fermer tout seul la courbe, mais je vous conseille de vous habituer à fermer vos courbes à chaque fois, puisque cette fermeture automatique ne marche qu'avec les
linear_spline.
cubic_spline
Cette méthode est très pratique, puisqu'elle permet d'arrondir votre courbe : pour chaque point, le point précédent et le point suivant sont utilisés afin de déterminer la tangente de la courbe...

Qu'est-ce que ça veut dire ? Que votre courbe est jolie.
En fait, c'est un peu plus compliqué que ça, vous pouvez aller voir
la doc si vous le souhaitez... Mais vous n'avez absolument pas besoin de savoir comment ça marche !
Les cubic_spline utilisent 3 points pour calculer la tangente en chaque point. Par conséquent, les trois premiers et les trois derniers points de votre liste DEVRONT OBLIGATOIREMENT ÊTRE LES MÊMES !
En réalité, il y a deux autres types de courbes :
quadratic_spline et
bezier_spline. Mais on ne les utilise presque jamais, donc autant ne pas vous embrouiller l'esprit avec ! Surtout que vous devriez pouvoir tout faire avec les deux que je vous ai montrés...
Bon : vous avez compris comment on fait une courbe, maintenant on va créer le prisme proprement dit :
Code : C 1
2
3
4
5
6
7
8
9
10 | prism {
linear_sweep
linear_spline
0,
1,
10,
< 0.2, -1.0>, < 0.2, 0.2>, < 1.0, -0.2>, < 1.0, 0.2>, < 0.2, 1.0>,
<-0.2, 1.0>, <-1.0, 0.2>, <-1.0, -0.2>, <-0.2, 0.2>, <-0.2, -1.0>
pigment { rgb <0,1,0> }
}
|
Comme vous le voyez, le mot-clé pour créer un prisme est
prism. Voyons ligne à ligne comment est fait ce prisme :
- linear_sweep indique le type d'extrusion du prisme... Ici, les bords du prisme sont droits ; nous verrons plus tard comment changer cette valeur.
- linear_spline : précise le type de courbe utilisée. Cela aurait aussi bien pu être cubic_spline.
- 0 : c'est la hauteur de la base du prisme.
- 1 : c'est la hauteur de l'extrémité du prisme.
- 10 : c'est le nombre de points utilisés (en comptant le dernier point, identique au premier).
- La longue série de points qui suit forme la courbe. Notez que le premier et le dernier point sont effectivement identiques... Notez également que toutes les coordonnées sont en 2 dimensions seulement : la courbe créée sera sur le plan Oxz, et le prisme prendra sa profondeur suivant l'axe des y...
Voici maintenant le même exemple, mais en utilisant cette fois
cubic_spline :
Code : C 1
2
3
4
5
6
7
8
9
10
11
12
13
14 | prism {
linear_sweep
linear_spline
0,
1,
12,
< 0.2, -1.0>, < 0.2, 0.2>, < 1.0, -0.2>,
< 1.0, 0.2>, < 0.2, 1.0>, <-0.2, 1.0>,
<-1.0, 0.2>, <-1.0, -0.2>, <-0.2, 0.2>,
<-0.2, -1.0>, < 0.2, 0.2>, < 1.0, -0.2>
pigment { rgb <0,1,0> }
}
|
Comme vous pouvez le voir, il y a ici deux points supplémentaires, qui permettent de faire correspondre les trois premiers points aux trois derniers.
Conic_sweep
Utiliser
conic_sweep au lieu de
linear_sweep permet de donner de l'épaisseur à la courbe comme si c'était un "cône" : la taille de la courbe est réduite jusqu'à n'être plus qu'un point en <0,0,0>.
Lorsque vous utiliserez conic_sweep, il est conseillé de prendre comme hauteurs 0 et 1, puis d'appliquer les transformations nécessaires après : en effet, quelles que soient les hauteurs que vous donnerez, le prisme ne sera qu'un point en <0,0,0> et aura sa taille normale (définie par la courbe) à la hauteur 1.
De plus, il est conseillé de centrer sa courbe sur 0, car le "cône" formé aura sa pointe en <0,0,0>.
Voici un schéma pour bien expliquer comment fonctionne
conic_sweep :
Si vous avez compris tout cela, c'est que vous connaissez tout sur les prismes.

Les autres objets, bien que très différents, utilisent un système de courbes très proche de celui des prismes : donc, si vous n'avez pas eu de problème jusque là, tout ira bien !
