Intégration des point sprites au standard X3D
5 / 13
2.2.1 Architecture et composants de base
Les quelques paragraphes qui suivent sont une traduction libre, c’est à dire non rigoureuse mais fortement inspirée, de l’introduction
officielle à la partie 1 de la norme ISO/IEC 19775.
X3D a été conçu pour servir de standard international, et il doit tenir compte des besoins généraux du marché ainsi que des
différentes technologies qui l’exploiteront. C’est pourquoi les concepteurs d’X3D ont tenu à :
– séparer l’architecture éxécutive de la phase d’encodage ;
– supporter une variété de formats d’encodage ;
– permettre l’ajout d’objets graphiques, comportementaux ou interactifs ;
– offrir des APIs (Application Programming Interfaces) alternatives pour le rendu de scènes 3D ;
– définir des profils, qui sont des sous-ensembles de la spécification, afin d’alléger cette dernière et cibler plus particulièrement
certains besoins du marché (par exemple des systèmes informatiques embarqués aux ressources limitées) ;
– permettre à la spécification d’être implémentée à différents niveaux de services ;
– éliminer tant que possibles les comportements non définis ou sous-définis.
L’architecture d’X3D a été définie dans le respect de ces objectifs et pour offrir un large panel de fonctionnalités aux utilisateurs
issus de domaines variés, telle que la visualisation scientifique ou industrielle, la présentation de contenus multimédia, le loisir
et l’éducation, la conception de sites internet ou encore la création de mondes virtuels partagés. On parle de composant pour
désigner un regroupement de fonctionnalités assimilables de part leurs rôles ou les éléments sur lesquels elles agissent. Les
composants les plus utiles servent à :
– afficher des objets 2D ou 3D éclairés et texturés ;
– définir des temporisateurs afin de gérer des animations ou de faire du morphing ;
– intégrer à la scène des sources audio et vidéo externes ;
– gérer les interactions de l’utilisateur avec la scène, définir des caméras mobiles, détecter les collisions ;
– définir de nouveaux objects non initialement spécifiés par la norme, et les utiliser comme des objets prédéfinis ;
– utiliser des scripts évenementiels pour lier la scène avec une application externe ;
– fabriquer une scène à partir de plusieurs sous-scènes distribuées sur des machines reliées en réseau ;
– faire de la simulation physique interactive, comme de l’animation humanoïde ou bien la gestion de systèmes de particules.
Bien entendu, toute la puissance d’X3D réside dans sa capacité à combiner plusieurs fonctionnalités issues de composants
différents, et de composer ainsi des scènes complexes formées par une multitude d’objets en relation les uns avec les autres.
On parle de graphe de scène pour désigner le graphe direct acyclique (DAG en anglais, pour Directed Acyclic Graph) qui
représente les objets et leurs liaisons. Un arc partant d’un objet A et allant vers un objet B signifie que A possède B, ou encore
que B est un champ de A (c’est une relation d’aggrégation).
Dans le graphe de scène, certains objets ont des coordonnées (il s’agit typiquement des objets affichables) et d’autres non. Les
coordonnées d’un objet peuvent être exprimées de manière absolue (dans le système de coordonnées du monde) ou bien de
manière relative (dans un système de coordonnées local).
Parmis la multitude de sous-graphes que l’on peut extraire du graphe de scène, on distingue en particulier la hiérarchie de
transformation. Il s’agit de la partie visuellement perceptible du graphe de scène. Elle est composée de l’ensemble des objets qui
sont pourvus de coordonnées ainsi que de leurs liaisons.
Un autre graphe, appelé graphe de comportement, définit les routes qui déterminent de quelle manière les événements générés
par un utilisateur, un script ou encore un temporisateur vont se propager parmis les objets de la scène.
Le graphe de scène et le graphe de comportement peuvent bien sûr être modifiés de manière dynamique, au cours de l’éxécution.
Par souci d’harmonisation, la norme fixe les unités de distance, de mesure d’angle et de temps comme étant respectivement le
mètre, le radian et la seconde. Les couleurs sont exprimées dans le système RGB, à l’aide d’un triplet de flottants qui peuvent
varier entre 0.0 (intensité minimale) et 1.0 (intensité maximale). Le système de coordonnées utilisé par défaut est un système
tri-dimensionnel cartésien direct (obéissant à la règle de la main droite).
Pour plus de détails concernant tout ce qui a été ennoncé ici, et découvrir encore d’autres choses à propos de la définition et de
l’interprétation d’une scène X3D, nous vous invitons à consulter la norme, et en particulier le chapitre 4 de la partie 1 dans lequel
sont exposés les concepts de base.