La création d'un gif animé en image de synthèse



L'objectif de cette page est de vous présenter une méthode relativement simple afin que vous puissier créer une animation en image de synthèse qui prendra au final la forme d'un fichier Gif. Dans cette présentation, nous utiliserons différents logiciels graphiques : un modeleur pour créer la scène 3D ( Rhinoceros ), un moteur de calcul des images de synthèse de l'animation finale ( POV ), et un logiciel pour créer le fichier Gif final ( Paint Shop Pro 6 ). Bien-entendu cette méthode peut s'appliquer en utilisant d'autres logiciels. La première étape consiste à créer la scéne que vous voulez animer. Attention, optez pour une scène simple pour commencer. En effet, les temps de calcul des images qui composeront l'animation peuvent devenir trés important suivant la complexité de la scène. Voici la scène qui servira d'exemple ( Image sous Rhinoceros ) :
Une scène trés simple. Un object "Box" auquel j'ai soustrait un object "Texte".

Voici une preview, toujours sous Rhinoceros pour vérifier le résultat. ( Texture en plus )

La scène est prête, reste à calculer l'animation. C'est POV qui se chargera de cette étape. Tout d'abord, il faut exporter la scène au format POV pour qu'elle soit utilisable. Sous Rhinoceros pas de problème il supporte une multitudes de formats en import comme en export, POV notamment :-). Une petite sélection puis "Export Selected". Avant l'enregistrement, Rhinoceros demande la "résolution" du fichier, il s'agit du nombre de polygones ( Mesh ) qui composeront l'objet. Plus ce nombre est grand, plus la qualité de l'objet est importante ( Les temps de calculs également !!! ). Choisissez une résolution moyenne pour les essais. Vous pouvez également choisir d'enregistrer votre scène sous forme de fichiers "Include". Dans ce cas, vous obtiendrez un fichier ".INC" pour chaque objet de la scène et un fichier principal ".POV". Cette solution est trés pratique puisqu'elle permet de reduire considérablement la taille du fichier principal. Avant de passer au listing, il est important de savoir comment POV représente l'espace. Toutes les instructions ayant des coordonnées comme paramètres suivent le format suivant : Instruction < X, Y, Z >. Voici le repère utilisé par POV :
Passons maintenant au fichier POV de la scène ( légèrement modifié par mes soins )
// POV-Ray file generated from Rhinoceros. #include "textures.inc" // Inclure fichier de définition des textures #include "object1.inc" // Inclure description object 1 #include "object2.inc" // Inclure description object 2 // Petite déclaration de Texture qui sera utilisé pour le sol #declare Texture = texture { pigment { rgb <0, 0, 0.8> } // Rouge 0 Vert 0 Bleu 80% finish { ambient 0.7 // Caractérisques lumineuses diffuse 0.1 brilliance 5 reflection 0.3 refraction 0.1 } } #declare Object1Texture = texture { Chrome_Texture } // Texture pour l'objet 1 #declare Object2Texture = texture { Chrome_Texture } // Texture pour l'objet 2 // Quelques sources de lumière light_source { <1000, 500, -200> color rgb <0.6,0.6,0.6> } light_source { <-1000, 50, 0> color rgb <0.6,0.6,0.6> } light_source { <1000, 50, 0> color rgb <0.6,0.6,0.6> } // information sur la position de la caméra camera { location <1100, 600, 50> // Position look_at <0, 0, 0> // Diriger vers l'objet } // Ici le sol ( Plane ) et les deux objets sont liés pour créer une seule entité union { plane { <0,1,0> , 0 // Plan possédant une normale suivant l'axe Y texture { Texture } // La texture du plan précédemment déclarer } object { object1 texture { Object1Texture } } // Objet 1 + Texture object { object2 texture { Object2Texture } } // Objet 2 + Texture rotate <0,clock,0> // Voir détails ci dessous }
Comme vous pouvez le voir le language POV ressemble fortement à du language C. La dernière instruction du fichier permet d'animer la scène. Ici, nous allons faire une rotation suivant Y de l'entitée définie par l'union. Pour cela, nous utiliserons tout simplement l'instruction "rotate" en fixant X et Z à 0. La variable "clock" permettra de calculer les images une à une suivant un pas fixe. Pour définir la valeur de "clock", POV utilise le fichier "quickres.ini". Pour accéder, à ce fichier sélectionnez le menu déroulant "Render" puis "Edit settings/render". La fenêtre suivante s'ouvre.
C'est ici que l'on choisira l'option qui sera utilisé pour le calcul de ou des images dans le cas présent. Sélectionnez "edit" pour éditer le fichier. Dans ce fichier, nous allons rajouter la définition suivante :
[160x120, Anim + AA 0.3] // L'entête Width=160 // Largeur image Height=120 // Hauteur image Antialias=On // Active l'antialiasing pour éliminer l'effet d'escalier Antialias_Threshold=0.3 // Le niveau d'antialiasing +KFF36 +KI0 +KF360 // Les paramètres pour la variable clock // +KFF36 -> Nombres d'images de l'animation ( 36 ) // +KI0 -> Valeur initiale de clock = 0 // +KF360 -> Valeur finale de clock = 360
Une fois le fichier enregistré une nouvelle option sera disponible comme vous pouvez le voir dans la fenêtre. POV se charge tout seul du calcul du pas, ici nous aurons une rotation de 360° pour 36 images soit un pas de 10°. Dans cet exemple, la variable "Clock" est insérée dans une instruction de rotation mais on peut tout aussi bien la mettre ailleurs pour créer d'autres effets ( Zoom, Translation .... ). Tout est prêt pour lancer le calcul de l'animation. Dans la fenêtre Render, sélectionnez l'option nouvellement crée puis appuyez sur "Render" pour démarrer les calculs. Les images seront calculées une à une. Pour info la scène décrite ici a été calculer en 20 minutes sur un K6-300. Une fois que les calculs sont terminées, toutes les images sont disponibles dans le répertoire ou se situe le fichier de la scène. Ces images sont au format BMP et sont nommées nomdelascèneXX.BMP, XX étant le numéro de l'image de 1 à 36. Il ne reste plus qu'a créer le Gif animé :-) Pour cela, nous utiliserons Animation Shop ( Paint Shop Pro 6 ). Lancez le logiciel, ouvrez le menu déroulant "File" puis "Animation Wizard". Le reste est trés simple, cliquez 4 fois sur "Suivant" puis insérez les images de l'animation dans l'ordre ( de 1 à 35 ). Pour éviter un temps mort dans l'animation, la 36éme image ne sera pas utilisée ( Image1 = image36 !!! ). Cliquez ensuite sur "Suivant" puis "Terminer". C'est tout !!!!! Pour voir le résultat, ouvrez le menu déroulant "View" puis "Animation". Pour changer, la vitesse d'animation sélectionner toutes les images de l'animation puis dans le menu déroulant "Animation" cliquez sur "Frame properties". Il ne vous reste plus qu'à définir la vitesse qui vous convient en 1/100 de seconde. Voici le résultat final :
Vous avez maintenant les bases pour créer des animations sous POV. Pour la mise au point d'animations plus complexes de nombreux utilisateurs ont conçu des programmes annexes pour POV. Je vous conseille vivement de visiter le site The PovRay include file page de Chris Colefax à ce sujet ( Superbes animations AVI en téléchargement !!! à voir !! ). N'hésitez pas à m'envoyer vos oeuvres, je les incluerais avec plaisir sur cette page.



Go Back