Expérimentations

Caméra dansante

Ce bout de code, inclus dans votre fichier .pov, va enregistrer le numéro de séquence et les mouvement (location et look_at) de la caméra dans un fichier.

Ce fichier pourra ensuite être exploité par un script utilisant gnuplot pour tracer ces deux trajectoires. Ou de traiter ces données avec un script Awk pour en faire un fichier .inc.

#local CK = radians(-clock);
#local E_Cam = 5.90;
#local CamX = E_Cam * (sin(CK) + 0.21*sin(CK*6));
#local CamY =  1.30 + (1.82*Cos_010(Cos_010(NormClock)));
#local CamZ = E_Cam * (cos(CK) + 0.21*cos(CK*6));
#local E_Lat = 1.1;
#local LatX = E_Lat * (sin(CK) - 0.35*cos(CK*10));
#local LatY = 1.15 + 0.42 * sin(NormClock*3.141592654*3);
#local LatZ = E_Lat * (cos(CK) - 0.35*sin(CK*10));

#if (0 = clock)
  #fopen CL "cam.log" create
#else 
  #fopen CL "cam.log" append
#end
#write (CL, clock, " ", CamX, " ", CamY, " ", CamZ,
  " ", LatX, " ", LatY, " ", LatZ,"\n")
#fclose CL

Et c'est assez efficace...

top view of camera move


vidz

Le timing du rendu

Ces explications ont été écrites à partir de la première génération du projet, et ne sont peut-être pas vraiment synchrones avec l'état actuel de la chose

La séquence contient 1800 images, ce qui prend très longtemps sur mon pauvre laptop, et la curiosité m'a incité à chronométrer chaque rendu, et à chercher des tendances. Aussitôt révé, aussitôt codé. Voici le graphique, vous voyez bien qu'il y a quelque chose à comprendre. Entre 1100 et 1150, quelque chose freine des quatres fers sur le moteur de rendu.

La démarche scientifique nous demande donc d'aller explorer ce qui se passe aux alentours de la frame 1100. Une inspection visuelle s'impose. Et pour ça, le meilleur outil, c'est la gif89a, donc...

$ time convert                                 \
          -delay 10 -resize 50%                \
          frames/E10[56789]5.png               \
          frames/E11[01234]5.png               \
          1100.gif

real    0m7.543s
user    0m6.083s
sys     0m1.411s
$

Je ne sais pas ce que vous en pensez, mais il me semble bien que c'est l'apparition des tubes de verre dans le champ de la caméra qui est la cause de ce ralentissement. Probablement à cause des calculs sur les réfractions/réflection à l'intérieur du verre ?

la randomatique

La génération de nombres aléatoires est, en même temps, un outil essentiel au clignotage, un élément incontournable du monde moderne, et un véritable défi théorique pour les matheux de la sécurité. En effet, quoi de plus (in)prévisible que les petits lutins qui tripotent les bits au cœur des CPUs ?

Stay tuned, film at 11