Quelques mots sur Quelques mots sur l'animation avec POV- l'animation avec POV-
Ray Ray
1.1.
la Variable Clock la Variable Clock
2.2.
Variables Dépendant de Clock et Variables Dépendant de Clock et Animations Multi-Etapes
Animations Multi-Etapes
3.3.
Le mot clé "Phase" Le mot clé "Phase"
4.4.
Fichiers INI Fichiers INI
la Variable Clock la Variable Clock
.ligne de commande : .ligne de commande : option+k
option+k
fichier INI : clock=3.4. fichier INI : clock=3.4.
par défaut clock= 0.0 par défaut clock= 0.0
un objet qui se un objet qui se déplace à vitesse déplace à vitesse
constante sur l'axe des constante sur l'axe des x. x.
exemple : +k3.4 exemple : +k3.4
translate <clock, translate <clock, 0, 0>
0, 0>
multiples changements multiples changements simultanément dans la simultanément dans la
même scène même scène
normaliser clock normaliser clock
balle rayée qui balle rayée qui roule de gauche à roule de gauche à droite
droite
sphère à l'originesphère à l'origine
tourne de 360 tourne de 360 degrés
degrés
=>360*clock
=>360*clock
translation pour translation pour placer la sphère à placer la sphère à son point de départ son point de départ
translation d'une translation d'une distance
distance
proportionnelle à proportionnelle à clock
clock
=>2*pi* r*clock
=>2*pi* r*clock
clock clock [0,1] [0,1]
#include "colors.inc"#include "colors.inc"
camera {location <0, 3, -6> look_at <0, camera {location <0, 3, -6> look_at <0, 0, 0> }
0, 0> }
light_source { <20, 20, -20> color light_source { <20, 20, -20> color White }
White } plane {y, 0 plane {y, 0
pigment { …}}
pigment { …}}
sphere {<0, 0, 0> , 1 sphere {<0, 0, 0> , 1
pigment {…}
pigment {…}
rotate <0, 0, -clock*360>
rotate <0, 0, -clock*360>
translate <-pi, 1, 0>
translate <-pi, 1, 0>
translate <2*pi*clock, 0, 0>
translate <2*pi*clock, 0, 0>
} }
Variables dépendant de Variables dépendant de
Clock et Animations Clock et Animations
Multi-Etapes Multi-Etapes
directives directives
conditionnelles de POV conditionnelles de POV – Ray pour tester clock – Ray pour tester clock pour déterminer quand pour déterminer quand on a atteint la moitié, on a atteint la moitié, puis commencer une puis commencer une nouvelle séquence nouvelle séquence dépendant d'une dépendant d'une
nouvelle horloge clock nouvelle horloge clock
Ex : clock de 0 à 2 Ex : clock de 0 à 2
La balle roule de La balle roule de
gauche à droite pour la gauche à droite pour la première moitié de
première moitié de l'animation, puis l'animation, puis
change de direction de change de direction de 135 degrés et roule de 135 degrés et roule de droite à gauche, et vers droite à gauche, et vers l'arrière de la scène
l'arrière de la scène
#if ( clock <= 1 )
#if ( clock <= 1 )
sphere { <0, 0, 0> , 1 sphere { <0, 0, 0> , 1
pigment {…}
pigment {…}
rotate <0, 0, -clock*360>
rotate <0, 0, -clock*360>
translate <-pi, 1, 0>
translate <-pi, 1, 0>
translate <2*pi*clock, 0, 0>}
translate <2*pi*clock, 0, 0>}
#else
#else
#declare ElseClock = clock - 1;
#declare ElseClock = clock - 1;
sphere { <0, 0, 0> , 1 sphere { <0, 0, 0> , 1
pigment {…}
pigment {…}
rotate <0, 0, ElseClock*360>
rotate <0, 0, ElseClock*360>
translate <-2*pi*ElseClock, 0, 0>
translate <-2*pi*ElseClock, 0, 0>
rotate <0, 45, 0>
rotate <0, 45, 0>
translate <pi, 1, 0>}
translate <pi, 1, 0>}
#end #end
mot clé
mot clé phase phase
Le mot clé Le mot clé phasephase peut être peut être utilise sur des éléments de utilise sur des éléments de
texture texture
(si application dans [0,1]) (si application dans [0,1])
Phase décale les valeurs de Phase décale les valeurs de couleur dans cette
couleur dans cette
application d'une valeur application d'une valeur
réelle spécifiée après réelle spécifiée après
"phase".
"phase".
Si clock dans [0,1], clock Si clock dans [0,1], clock peut remplacer la valeur peut remplacer la valeur
réelle associée avec phase, réelle associée avec phase, et le motif va continûment et le motif va continûment
changer pendant l'animation.
changer pendant l'animation.
Par exemple: Par exemple:
color_map { color_map {
[0.00 White ] [0.00 White ] [0.25 Blue ] [0.25 Blue ] [0.76 Green ] [0.76 Green ] [1.00 Red ] [1.00 Red ] }}
La valeur réelle au début de La valeur réelle au début de chaque crochet permet la chaque crochet permet la
transformation des valeurs transformation des valeurs
de couleur pour certaines de couleur pour certaines
zones des objets auxquels on zones des objets auxquels on
applique la texture.
applique la texture.
L'application prend ses L'application prend ses
valeurs dans l'intervalle 0 valeurs dans l'intervalle 0 à1.à1.
Exemple avec phase Exemple avec phase
#include "colors.inc"
#include "colors.inc"
#include "textures.inc"
#include "textures.inc"
background { … } background { … } camera {…}
camera {…}
light_source { … } light_source { … } //flagpole
//flagpole
cylinder {<-1.5, -4, 0>, <- cylinder {<-1.5, -4, 0>, <-
1.5, 2.25, 0>, 0.05 1.5, 2.25, 0>, 0.05
texture { Silver_Metal }}
texture { Silver_Metal }}
// polecap // polecap sphere {
sphere { <-1.5, 2.25, <-1.5, 2.25, 0>, 0.1
0>, 0.1
texture { Silver_Metal }}
texture { Silver_Metal }}
// flag // flag
polygon { polygon {
5, <0, 0>, <0, 1>, <1, 1>, <1, 5, <0, 0>, <0, 1>, <1, 1>, <1,
0>, <0,0>
0>, <0,0>
pigment { Blue } pigment { Blue }
normal {gradient x normal {gradient x
phase clock phase clock
scale <0.2, 1, 1> scale <0.2, 1, 1>
sine_wave} sine_wave}
scale <3, 2, 1>
scale <3, 2, 1>
translate <-1.5, 0, 0>
translate <-1.5, 0, 0>
} }
drapeau bleu avec un motif de gradient de normales, ondulation
Fichier .INI Fichier .INI
Initial_Frame et
Initial_Frame et Final_Frame
Final_Frame
permettent de permettent de calculer un certain nombre calculer un certain nombre de trames
de trames
pour faire varier clock , on pour faire varier clock , on utilise Initial_Clock et
utilise Initial_Clock et Final_Clock
Final_Clock
Si on ne veut recalculer que Si on ne veut recalculer que quelques trames, Subset
quelques trames, Subset fait aller clock avec des fait aller clock avec des valeurs proportionnelles valeurs proportionnelles
aux trames 1 à 100, mais en aux trames 1 à 100, mais en ne calculant que la partie ne calculant que la partie de la séquence de la 51 de la séquence de la 51
e eà à 75 75
eetrame. trame.
Exemple Exemple
Initial_Frame = 1 Initial_Frame = 1
Final_Frame = 100 Final_Frame = 100
Initial_Clock = 0.0 Initial_Clock = 0.0
Final_Clock = 2.0 Final_Clock = 2.0
Subset_Start_Frame = Subset_Start_Frame = 51 51
Subset_End_Frame =
Subset_End_Frame =
75 75
Exemple
Exemple monfichier.ini
Antialias=Of
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=of
Exemple 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 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 fallof 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,