Réverbérations

Jusqu'à présent nous avons classiquement utilisé une séquence d'images d'une façon linéaire afin de la transmuter en boucle récurrente infinie. Il est temps de pousser le concept à une étape supérieure, en traitant cette séquence de prises de vue, elle-même, comme une boucle.

Imaginez un cadran d'horloge dont chaque chiffre serait une de nos 12 images, et qu'un fourbe ait soudé entre elles les deux aiguilles, la grande posée sur le 3 et la petite sur le 4, de telle sorte qu'elles conservent un écart angulaire constant en faisant le tour du cadran.

Maintenant, un peu de technique avec notre vieil ami le shell. Entre la première boucle (la saisie des images) et la seconde (celle des traitements), nous allons insérer une autre boucle qui va pré-digérer toute cette linéaire séquence afin de remplir le spool avec une boucle complète d'images (le « cadran » que nous avons imaginé plus haut) toutes accessibles à un instant T.

for frame in $(seq 1 $NBFRAMES)
do
	negatif=/tmp/photo_${JOB}_$(printf %03d $frame).png
	photo=/tmp/photo_${JOB}_$(printf %03d $frame).tga
	pngtopnm $negatif | ppmtotga -rgb -norle > $photo
	# tga_effects $photo updown $photo
	# tga_effects $photo mirror $photo
	tga_resize $photo newsize $photo 333 333 1
	tga_applymap 1 $photo volcano.map $photo 
done

Cette première étaphe franchie, et aaprès une pause psychédélique, nous allons rentrer dans le vif du sujet.

Un peu de courage, ça va être rude, mais notre aiguille siamoise va bien nous aider. Pour chaque tick d'horloge, nous pointerons sur deux images placées à deux endroits différents de l'espace temporel. Nous allons donc combiner ces deux images d'une façon qui fera tous le sel du résultat.

for frame in $(seq 1 $NBFRAMES)
do
	photo=/tmp/photo_${JOB}_$(printf %03d $frame).tga
	p1=$frame
	p2=$(( 1 + ((frame + $DECALAGE) % NBFRAMES) ))
	i1=$(printf "/tmp/photo_${JOB}_%03d.tga" $p1)
	i2=$(printf "/tmp/photo_${JOB}_%03d.tga" $p2)
	dst=$(printf "/tmp/R_${JOB}_b_%03d.tga" $frame)
	tga_combine $i1 $i21 lines $dst 16 8 0
done

Voilà...