Quelques mots sur l'animation avec POV-Ray la Variable Clock Variables Dépendant de Clock et Animations Multi-Etapes Le mot clé "Phase" Fichiers INI
la Variable Clock .ligne de commande : option+k fichier INI : clock=3.4. par défaut clock= 0.0 un objet qui se déplace à vitesse constante sur l'axe des x. exemple : +k3.4 translate <clock, 0, 0>
multiples changements simultanément dans la même scène normaliser clock balle rayée qui roule de gauche à droite sphère à l'origine tourne de 360 degrés =>360*clock translation pour placer la sphère à son point de départ translation d'une distance proportionnelle à clock =>2*pi* r*clock clock e [0,1] #include "colors.inc" camera {location <0, 3, -6> look_at <0, 0, 0> } light_source { <20, 20, -20> color White } plane {y, 0 pigment { …}} sphere {<0, 0, 0> , 1 pigment {…} rotate <0, 0, -clock*360> translate <-pi, 1, 0> translate <2*pi*clock, 0, 0> }
Variables dépendant de Clock et Animations Multi-Etapes directives conditionnelles de POV – Ray pour tester clock pour déterminer quand on a atteint la moitié, puis commencer une nouvelle séquence dépendant d'une nouvelle horloge clock Ex : clock de 0 à 2 La balle roule de gauche à droite pour la première moitié de l'animation, puis change de direction de 135 degrés et roule de droite à gauche, et vers l'arrière de la scène #if ( clock <= 1 ) sphere { <0, 0, 0> , 1 pigment {…} rotate <0, 0, -clock*360> translate <-pi, 1, 0> translate <2*pi*clock, 0, 0>} #else #declare ElseClock = clock - 1; rotate <0, 0, ElseClock*360> translate <-2*pi*ElseClock, 0, 0> rotate <0, 45, 0> translate <pi, 1, 0>} #end
mot clé phase Le mot clé phase peut être utilise sur des éléments de texture (si application dans [0,1]) Phase décale les valeurs de couleur dans cette application d'une valeur réelle spécifiée après "phase". Si clock dans [0,1], clock peut remplacer la valeur réelle associée avec phase, et le motif va continûment changer pendant l'animation. Par exemple: color_map { [0.00 White ] [0.25 Blue ] [0.76 Green ] [1.00 Red ] } La valeur réelle au début de chaque crochet permet la transformation des valeurs de couleur pour certaines zones des objets auxquels on applique la texture. L'application prend ses valeurs dans l'intervalle 0 à1.
Exemple avec phase #include "colors.inc" #include "textures.inc" background { … } camera {…} light_source { … } //flagpole cylinder {<-1.5, -4, 0>, <-1.5, 2.25, 0>, 0.05 texture { Silver_Metal }} // polecap sphere { <-1.5, 2.25, 0>, 0.1 // flag polygon { 5, <0, 0>, <0, 1>, <1, 1>, <1, 0>, <0,0> pigment { Blue } normal {gradient x phase clock scale <0.2, 1, 1> sine_wave} scale <3, 2, 1> translate <-1.5, 0, 0> } drapeau bleu avec un motif de gradient de normales, ondulation de type sinus ( le drapeau roule d'arrière en avant comme s'il était soumis au vent)
Fichier .INI Initial_Frame et Final_Frame permettent de calculer un certain nombre de trames pour faire varier clock , on utilise Initial_Clock et Final_Clock Si on ne veut recalculer que quelques trames, Subset fait aller clock avec des valeurs proportionnelles aux trames 1 à 100, mais en ne calculant que la partie de la séquence de la 51e à 75e trame. Exemple Initial_Frame = 1 Final_Frame = 100 Initial_Clock = 0.0 Final_Clock = 2.0 Subset_Start_Frame = 51 Subset_End_Frame = 75
Exemple monfichier.ini Antialias=Off Antialias_Threshold=0.1 Antialias_Depth=2 Input_File_Name=monfichier.pov Initial_Frame=1 Final_Frame=30 Initial_Clock=0 Final_Clock=1 Cyclic_Animation=on Pause_when_Done=off
Exemple // lumière light_source {<0, 5, -5>, rgb <1, 1, 1>} // caméra camera {location <0, 0, -5>look_at <0, 0, 0>} // texte tournant text {ttf "/chemin/bragga.TTF« "e-m@il« 0.25, <0, 0> pigment {color rgb <0, 0.75, 0>} finish {specular 1} scale 1 translate x*(-2) rotate <0, clock*360, 0> }
Exemple // décor union {box 1 box2 cylinder1 cylinder2 plane pigment { color…}} //sujet qui change de couleur et de taille sphere { <0, 1.5, 0>, 1 pigment { color rgb <1-clock, 0+clock, 1-clock/2>}} //source de lumière qui tourne autour du sujet light_source {<0, 5, -2>, rgb <1, 1, 1> spotlight radius 35 falloff 45 point_at <0, 0, 0> fade_distance 10 fade_power 1 rotate <0, clock*360, 0> } // caméra qui s'approche lentement camera { location <-5*clock+10, -5*clock+10, 5*clock-10> look_at <0, 0, 0>}