Eklablog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

Images de synthèse sous POV-RAY

Publicité

Un couloir animé et un (tout petit) peu hanté

L'animation est relativement simple pour l'instant, et elle compte 250 images.

Tout d'abord, parlons de la lumière. Une torche ne donne pas une lumière constante dans le temps. Il faut donc pouvoir faire varier la luminosité en fonction du temps. Ou pour être exact, ici, faire varier le falloff_distance. Mais comment la faire varier ? 

La première solution est d'utiliser une valeur aléatoire. Parfait pour des images fixes, cela génère des changements trop brusques pour une animation.

Une autre idée est de faire varier périodiquement la luminosité. Un cosinus fonction du temps fonctionne bien, mais l'effet est trop régulier.

Dernière variante, et c'est celle qui est retenue : une somme de plusieurs cosinus, de fréquences différentes. J'utilise ici cette petite fonction :

#macro Vacille (ValeurMoyenne,Variation,Frame)
(ValeurMoyenne + 0.33*Variation*cos(5*Frame*pi/17) + 0.33*Variation*cos(5*Frame*pi/21) + 0.33*Variation*cos(5*Frame*pi/23) )
#end

Autre point : la caméra. C'est facile de faire bouger la caméra, en translation ou en rotation. C'est un tout petit peu plus difficile de générer des mouvements souples, sans à-coup.

J'utilise par exemple pour les rotations cette macro, qui prend une valeur entre 0 et 1, et qui retourne une valeur entre 0 et 1, mais avec une tangente plate en zéro et en 1. Au lieu de donner un mouvement régulier, on a une accélération au départ et une décélération à l'arrivée.

#macro Souple(Valeur) // bijection [0..1]=>[0..1], assouplit les déplacements
0.5*(1-cos(pi*Valeur))
#end

Pour les déplacements longs, je n'utilise pas cette méthode, car les temps d'accélération et de décélération sont proportionnels à la durée. Je découpe en trois : une phase d'accélération, une phase à vitesse constante et une phase de décélération. Et au lieu d'approximer l'accélération par un arc de sinusoïde, j'utilise un arc de parabole. Le résultat est satisfaisant.

Ci-dessous un extrait du code de la caméra :

#switch (IMAGE) 
#range(0, 20) // une seconde au point de départ
#declare PositionCam=<200,150,-600>;
#declare AngleCam=0;
LaCamera(PositionCam,100,AngleCam,0)
#break
#range(20, 30) //tourne à gauche 1/2 seconde
#declare PositionCam=<200,150,-600>;
#declare AngleCam=-30*Souple((IMAGE-20)/10);
LaCamera(PositionCam,100,AngleCam,0)
#break
#range(30,50) // une seconde observation
#declare PositionCam=<200,150,-600>;
#declare AngleCam=-30;
LaCamera(PositionCam,100,AngleCam,0)

(le fichier complet sera bien sûr posté en entier quand tout sera terminé).

 

Dernier point : le cube du fond sera remplacé par un buste. Qui suit automatiquement la caméra du regard.

Je range mes maths et je sors la vidéo. 

 

 

A suivre : vacances !!! Donc quelques jours sans projet.

A bientôt !

Publicité
Retour à l'accueil
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article