Michel BRET Maître Assistant àl´Université de Paris VIII Dépt d´Arts Plastiques (Filière Art et Technologie de l´Image) Département d´Informatique

ANYFLO : Logiciel d´Animation 3D

In Imaginaire Numérique, HERMES 1986



RESUME

L´auteur, d´origine pluridisciplinaire (Mathématiques. Arts Plastiques. Informatique), fait dans cet article le point sur une dizaine d´années de recherche articulée autour de trois grands axes:
L´étude de l´image numérique animée du double point de vue plastique et technique conduisant à une réflexion sur l´apport des nouvelles technologies aux disciplines artistiques et à des réalisations concrètes (logiciels et images).
Le souci constant de faire partager les résultats de ces travaux sous la forme d´un enseignement dans la Filière "Art et Technologie de l´Image" de l´Université de PARIS VIII et de logiciels d´animation destinés à des artistes.
Le besoin de produire des œuvres se traduisant par de nombreux films d´animation synthétique.
Après une brève description du matériel sur lequel cette étude a été conduite, les différentes couches du logiciel "anyflo" sont exposées.
L´idée principale qui sera développée est que l´ordinateur, qui manipule du langage plus que de la matière, induit une attitude nouvelle du créateur, que nous dirons "procédurale", privilégiant le processus sur l´objet.

INTRODUCTION

Une ancienne querelle oppose les animateurs traditionnels et les informaticiens: Les images mobiles produites par l´ordinateur peuvent-elles être qualifiées d´animées ? Non, répondent les hommes de l´art, l´animation ne se réduit pas à faire bouger des formes. Norman Mc LAREN disait que ce qui se passe entre les images est plus important que ces images même. En signifiant, par le mouvement, plus que ce que montrent les images, l´animation peut se comparer à une rhétorique qui nous fait entendre plus et autre chose que ce que disent les mots.
L´apport des nouvelles technologies à l´art, et en particulier de l´ordinateur à l´animation, ne se situe pas seulement au niveau purement technique mais encore et surtout au niveau plus conceptuel du langage. Ce que l´Art Cinétique avait entrevu, à savoir la prépondérance du processus sur l´objet, peut être aujourd´hui une réalité grâce aux programmes, véritables "méta-ceuvres" (c´est àdire des oeuvres engendrant des œuvres).

1 LE MATERIEL

L´A.D.I. (Agence de l´Informatique) ayant donné un ordinateur SM90 à mon équipe et le C.l.M.A, ayant mis à ma disposition un système SM90+COLORIX90, mon choix s´est naturellement porté sur la configuration décrite sur la figure 1:
Un ordinateur SM90 ou SPS7 de 1 à 4 Mo de mémoire centrale.
Un disque fixe de 50 à240 Mo et une cartouche amovible de 5 à 10 Mo.
Un synthétiseur d´image COLOIX_90 dont la mémoire d´écran peut s´organiser en 16 plans de 1 Mbits (ce qui autorise 32768 teintes) dont une fenêtre de format vidéo est visualisable.
Une tablette de saisie graphique facilitant l´interaction.
Eventuellement une carte de digitalisation et une interface de commande d´un magnétoscope de prise de vue image par image.
Le système d´exploitation est smx (développé A l´I.N.R.l.A.) et j´ai écrit les programmes en assembleur 68000 et en langage C.

2 STRUCTURE DU LOGICIEL

Les couches du logiciel peuvent de concevoir comme la formalisation des différents moments de la création (voir figure 2):
Une bibliothèque graphique de base joue le rôle de la "main" en donnant accès à toutes les ressources du processeur d´image.
Un interpréteur, partie "intelligente" du système, réalise une interface hautement interactive entre la couche précédente et un environnement.
Celui-ci est constitué d´une part de programmes d´applications qui sont autant de concrétisations de techniques et de savoir-faires donnés et, d´autre part, de "macros-fonctions" écrites par l´utilisateur et lui permettant d´habiller le logiciel à sa convenance. Parmi ces programmes citons "anyflo" (synthèse 3D). "IKO" qui en est une variante orientée architecture, "traj" (animation 3D). etc...

Afin d´optimiser les temps de réponse et de permettre une interaction en temps réel, j´ai écrit ce module en assembleur, mais une version intégrale en C existe et tourne sur d´autres machines.
A ce niveau élémentaire mais très important (car de lui dépend l´aspect final de l´image) on trouve les primitives les plus classiques: Accès aux registres du processeur graphique, choix de la couleur, écriture d´un pixel, tracé de segments et de figures simples, etc... [LUCAS 77].
Enfin l´algorithme d´élimination des parties cachées dit du "z-buffer" et un lissage de GOURAUD [GOURAUD 7l] autorisent un traitement rapide et une visualisation réaliste de structures de données tridimensionnelles.

4 L´INTERPRETEUR

Ecrit en langage C il se présente sous la forme d´une boucle d´évaluation de chaînes de caractères en provenance de diverses entrées (voir figure 3).
Il peut être entièrement redirigé sur la tablette de saisie graphique, ce qui rend l´interaction particulièrement souple et rapide.
Son originalité réside dans sa capacité à pouvoir traiter des primitives vectorielles de différentes façons:
Du stricte point de vue du calcul, les opérateurs arithmétiques et logiques s´appliquent globalement à des listes de nombres flottants.
Une interprétation géométrique, en terme de lignes polygonales, de ces entités donne lieu à des transformations visualisées en temps réel.
Un langage graphique interprété permet de manipuler ces objets par leurs noms et d´écrire des "macros" possédant toutes les propriétés des langages de programmations: Définitions de différents types de variables, boucles et branchements, instructions conditionnelles, fonctions récursives, paramètres formels, variables locales, etc...
Cet outil favorise une attitude introspective et procédurale consistant à raisonner en termes de processus: Une construction plastique (forme ou animation) sera formalisée dans ce langage et son exécution lancée par simple invocation de son nom.
Remplacer une suite d´actions par une description verbale permet d´en dépasser l´irréversibilité et d´intervenir directement sur son déroulement en lui appliquant les catégories logiques du discours. Une telle simulation conduit à sculpter des objets non plus dans un univers matériel mais dans un espace conceptuel, la concrétisation de l´œuvre étant réalisée par la machine.

5 ANYFLO: PROGRAMME DE SYNTHESE 3D

5.1 Les structures de données
Les objets créés ont une structure récursive de blocs dont l´arborescence associée est modifiable dynamiquement par ajout de propriétés et de sous-propriétés. Par exemple une facette est représentée par une liste de numéros de points ou par une suite de telles listes (facettes A "trous") ou même par des descriptions d´un autre type (couleur, texture, etc...).
5.2 La construction des formes
Un ensemble de procédures standards permet de définir rapidement des volumes simples (polyèdres, prismes, boules, surfaces de révolutions, etc...).
La construction de surfaces polyédriques par des sections (rentrées sur la tablette ou faisant référence à un nom de variable manipulée en tant qu´entité graphique) permet de définir des volumes de complexité arbitraire.
Mais le moyen le plus puissant est la génération procédurale consistant à écrire des macros dans le langage interprété. La méthode revient à tester intéractivement des actions élémentaires, à leur donner des noms, et à construire de proche en proche des descriptions de plus en plus complexes dont il est facile de modifier le texte (avec un simple éditeur) et de produire ainsi un ensemble de propositions plastiques.
5.3 La modification des données
Le langage fournit des outils de manipulations globales, ou élément par élément, de toutes les données.
Des transformations géométriques, accessibles au clavier, dans des macros ou sur la tablette permettent de modeler des objets ou des parties désignées d´objets donnés. Outre les plus classiques (déplacements, rotations, symétries, dilatations, etc...) on trouve des outils "flous", définis par un pôle d´action, un rayon d´influence et une loi de déformation modifiant localement une surface; d´autres outils, "durs", simulent l´action du sculpteur (couper, ajouter, etc..).
5.4 La visualisation
Les objets sont décrits dans un repère absolu et vus par un œil fictif défini par sa position, la direction dans laquelle il regarde, une ouverture et une inclinaison. La scène est alors coupée par la pyramide de visualisation [BLINN 78] et mise en perspective soit par une projection conique, soit par une axonomctrie.[NEWMAN et SPROULL 79] [FOLEY 82].
L´ensemble peut être éclairé par un nombre quelconque de sources lumineuses ponctuelles modifiables en position, couleur et intensité. Le modèle d´éclairement retenu tient Compte d´une composante d´ambiance, d´une composante diffuse, d´une composante spéculaire [BLINN 77] ainsi que d´une transparence et d´une texture optionnelles.
Les ombres portées existent dans le programme "IKO".
Je n ai pas cherché à implémcnter des algorithmes de type "lancé de rayons" (pour des raison» de temps de calculs sur de petites machines) leur préférant des procédés plus simples Comme par exemple la simulation de miroirs plans en définissant un œil secondaire symétrique de l´œil réel et regardant la scène à travers une facette.
5.5 Les extensions
Un procédé original [BRET 81, 84] d´extension courbe de surfaces polyédriques fournit une surface à maillage plus fin passant effectivcrnnct par tous les points de contrôles et épousant localement la courbure de la forme d´origine.
Par mappage d´objets 3D dans un repère local lié à chaque facette il est possible de définir des motifs dont la structure récursive permet de générer très rapidement et avec une occupation mémoire minimale des formes complexes.
La notion d´alphabet autorise une construction modulaire (appréciée des architectes) et un éditeur 3D gère la disposition spatiale des modules (génériques, éléments de bâtiments, etc...).
Le mappage 3D d´images digitalisées, avec prise en compte de tous les paramètres d´éclairements), aide à la définition de textures.
Enfin des surfaces fractales utilisant l´algorithme de l.oren CARPENTER [CARPENTER 80, 82] simule des reliefs montagneux [MANDELDROT 77. 82].

6 TRAJ: PROGRAMME D´ANIMATION

6.1 La définition des mouvements
Par défaut, lorsque rien n´est précisé, les objets se déplacent linéairement dans l´espace et le temps entre des positions clées.
Mais l´utilisateur peut intervenir au niveau de son choix, soit globalement sur un ensemble de formes, soit localement sur des parties ou même au niveau du point.
Plus précisément les entités graphiques (points, couleurs, coefficients de fractalisation. paramètres d´éclairements. etc...) sont représentés par des listes suivies de deux indicateurs dont l´un renvoie à une "métrique" (ou chemin spatial dans un espace à n dimensions) et l´autre à une "cinématique" (ou loi de mouvement) (voir figure 4). Il est ainsi possible par exemple d´associer à un ou plusieurs points une ou plusieurs "trajectoires", ce qui autorise un contrôle complet des déformations lors d´une interpolation.
Pour des mouvements simples (déplacements, rotations, ...) il suffit d´une description par objet, mais pour des animations complexes (changements d´expressions d´un visage, ondoiement d´une surface liquide, ...) il faudra associer une trajectoire àchaque point. Il serait fastidieux de procéder manuellement et la bonne méthode consiste à écrire des macros générant automatiquement les mouvements adéquates. Par exemple pour simuler une mer agitée suffit-il de partir d´une grille horizontale puis, par une double boucle en x et en z, de construire, pour chaque point, une trajectoire fonction de sa position et d´une loi reproduisant les mouvements de vagues.
6.2 Trajectoires spéciales
Tous les paramètres du programme peuvent être considérés comme des variables d´animation: Ainsi est-il possible de définir des trajectoires de l´œil, des sources lumineuses, des tables de transcodages, de la couleur d´une forme, d´une facette ou même d´un point, de coefficients divers, etc...
D´autres trajectoires permettent de construire des mouvements périodiques, aléatoires, de gérer des décors en 2D1/2. etc...
6.3 Animation avec contraintes
Une structure arboresecente peut être associée à un ensemble d´objets afin de définir des relations de dépendances. Ainsi, pour faire marcher un personnage, suffit-il d´"ancrer" les différente parties de son corps les unes aux autres en précisant des points et des niveaux d´ancrages, le système gérant automatiquement les liaisons et la cohérence des mouvements (voir la séquence de la "danseuse" ainsi que le film "anyflo").
6.4 Enchaînement de séquences complexes
La mise au point d´une animation se fait généralement en testant intéractivement des séquences élémentaires dont la succession est assurée par un processus automatique auquel il suffit de passer des noms de fichiers et des nombres d´images à générer.
Afin de pouvoir dérouler des actions non synchrones, des descriptions spéciales permettent d´injecter des séquences en cours d´animation.
Enfin un programme (utilisant les 16 plans de la mémoire de COLORIX) peut produire entre 5 et 10 secondes d´animation en temps réel sur des scènes affichées en fil de fer et en noir et blanc.

CONCLUSION

On aura reconnu dans ce qui précède la description d´un logiciel classique de synthèse et d´animation, il se distingue cependant des autres produits par deux propriétés fondamentales dues à sa structure d´interprète: En privilégiant le processus sur l´objet il permet à l´artiste d´accéder à une forme de pensée procédurale extrêmement féconde.
En fournissant les moyens de définir de nouvelles fonctions il ouvre un champ d´applications potentiellement illimité.
Le système est opérationnel dans plusieurs centres:
Université de PARIS VIII
     Département d´Arts Plastiques (Synthèse, animation et enseignement). 1 tri E 7,
>     Déparlement d´Informatique (Recherche).
C.I.M.A. (Architecture). I.R.C.A.M. (Animation.
Université de STRASBOURG (Enseignement des Arts Plastiques).
Société T.l.T.N. (Synthèse).
Plusieurs prestateurs de services en images de synthèse l´utilisent.
Un certain nombre de films ont été réalisés avec "anyflo". dont "Balibull" par des étudiants d´A.T.I., "an/rto". etc...

BIBLIOGRAPHIE

BLJNN James F.
"Models of light reflection for computer synthesized piclures" M Proc. of SIGGKAPH´77
"Clipping using homogeneous coordinates" ^ Computer ´(fraphics. Vol. 12. M/m 3. p. 245-251. Aoûl 197B
BRET Michel "Animation colorée sur mini ordinateur" Thèse de 3em cycle. Université de PARIS VIII Juin 1981
"L´image numérique animée" Doctorat d´état. Université de PARIS VIII. Juin 1984
}CARPENTER Loren
"Rendering of fractal curves and surfaces" ACM Computer Graphics. Vol. 14. Tvum 3. p 109. Juillet 1980
"Computer rendering of stochasttc models" Commun. ACM. 1982
FOLEY J.D.. VAN DAM A. "Fundamenlal of interactive computer graphies" Addison*Wesley, Reading. MA. 1982
GOURAUD Henri "Continous shading of curved surfaces" lEEETrans. Comput. c-20. 6.p.623-629. Juin 1971
LUCAS Michel "Contribution à l´étude des techniques de communication graphique avec un ordinateur. Eléments de base des logiciels graphiques", Thèse d´Etat. Université de GRENOBLE. 1977
MANDELBROT Benoît "Fractals: Form, Chance and Dimension" Freeman. San Francisco. 1977 "The frnctal geometry of nature" /Veeman, San Francisco, 1962
NEWMAN William II.. SPROULL Robert F. "Princioles of interactive computer graphies" Me Graw mi. N.Y.. 1979



Figure 1


Figure 2


Figure 3