Intégration des point sprites au standard X3D 1 / 13
Intégration des point sprites au standard X3D
Intégration des point sprites au standard X3D
2 / 13
INDEXATION DU DOCUMENT
TITRE :REFERENCE :
Intégration des point sprites au standard X3D
ACTION NOM DATE SIGNATURE
RÉDIGÉ PAR Adrien COSSA 5 mars 2007
SUIVI DU DOCUMENT
INDICE DATE MODIFICATIONS NOM
Intégration des point sprites au standard X3D
3 / 13
Table des matières
1 Introduction 4
2 Le standard X3D (eXtensible 3D) 4
2.1 Présentation...................................................... 4
2.2 LanormeISO/IEC19775............................................... 4
2.2.1 Architecture et composants de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.2 Interface de manipulation de la scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Noeuds de base pour un affichage générique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 La représentation des nuages de points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 La technique de rendu point sprite 8
4 Spécification d’un nouveau noeud X3D 8
4.1 Ajout du noeud PointProperties ........................................ 9
4.2 Modification du noeud Appearance ........................................ 9
4.3 Répercussions sur l’encodage XML et VRML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.4 Exemples d’utilisation de PointProperties .................................. 10
5 Implémentation avec Xj3D 11
5.1 PréparationdeNetBeans ............................................... 11
5.2 Insertiondessourcesàmodier ........................................... 12
5.3 Modicationdessources ............................................... 12
5.4 Tests.......................................................... 13
6 Pointeurs 13
Intégration des point sprites au standard X3D
4 / 13
Résumé
Ce document présente le travail qui a été réalisé pour le projet 150 heures du master en informatique de l’image et du calcul
intensif, au sein de l’Université Louis Pasteur. Il a été rédigé en Docbook XML puis exporté au format PDF à l’aide de dblatex.
Le sujet concerne l’étude de la norme X3D définie par le Web 3D Consortium et des techniques de rendu point sprite, la spécifi-
cation d’un nouveau noeud X3D pour représenter des point sprites, ainsi que l’implémentation de ce dernier dans le toolkit Xj3D.
Le sujet complet original est disponible en ligne à cette adresse : http://co2sa.free.fr/ter/ter.pdf.
Ce projet a été réalisé avec l’aide et le soutien de Raphael Marc et Christophe Mouton, ingénieurs de recherche chez EDF R&D
Clamart, ainsi que de Franck Kolb de l’Institutt For Energiteknikk Halden en Norvège. Il a été encadré par Jean-Michel Dischler,
enseignant chercheur à l’Université Louis Pasteur.
1 Introduction
X3D (eXtensible 3D) se présente comme étant le successeur de VRML (Virtual Reality Modeling Language), un language de
description de scènes 3D interactives. C’est un standard jeune mais populaire, toujours en cours d’évolution. L’objectif de ce
projet est d’inclure à X3D la technique de rendu point sprite.
Un toolkit écrit en Java qui s’appelle Xj3D permet de valider la spécification d’X3D, au fur et à mesure que cette dernière évolue,
en prouvant qu’elle est implémentable de manière pratique. Il s’agit en fait d’un browser qui, de part sa licence LGPL et son
architecture orientée-objet fortement modulable, facilite l’implémentation des modifications que l’on apporte à la norme d’X3D.
Nous commencerons par présenter le langage X3D dans ses grandes lignes, puis nous nous pencherons en détails sur ce qu’il
propose pour représenter des nuages de points. On se livrera ensuite à une petite présentation de la technique de rendu point
sprite avant de voir comment on peut l’intégrer à la spécification d’X3D. Enfin nous implémenterons dans Xj3D, en conjonction
avec le travail précédemment effectué, le nécessaire à l’exploitation des point sprites.
2 Le standard X3D (eXtensible 3D)
2.1 Présentation
Nous avons déjà introduit X3D comme étant une version évoluée du langage de description VRML. Pour être tout à fait exacte,
X3D n’est pas un langage de description mais un système de description. X3D est une abstraction évoluée de VRML, et il faudra
lui associer une technique d’encodage avant de pouvoir l’exploiter. Cette étape d’encodage peut être vue comme la projection d’un
document abstrait X3D au sein d’un langage de description concret. Le Web 3D Consortium propose trois méthodes d’encodage :
Classic VRML : le document conserve la syntaxe du VRML tout en bénéficiant des évolutions apportées au langage ;
XML : le document doit strictement respecter les règles d’une DTD (Document Type Definition) XML ;
binaire : il s’agit d’un stockage compact du document, dans un format compressé binaire.
En pratique, nous utiliserons l’encodage XML, car le VRML est voué à disparaitre et le format binaire n’est pas du tout adapté à
la lecture et l’écriture par un être humain : il a été conçu pour accélérer les transferts entre machines et il n’est pas recommandé
de le manier directement.
2.2 La norme ISO/IEC 19775
La spécification d’X3D a été standardisée en 2004 par la norme ISO/IEC 19775:2004, qui se découpe en deux parties :
description de l’architecture et des composants de base ;
description de l’interface de manipulation de la scène (SAI en anglais, pour Scene Authoring Interface).
Un premier amendement, qui date de 2006, a fait évolué la première partie de la norme. Un second amendement est actuellement
en cours de rédaction. La Revision 1 de la partie 1 cumule la version originale, l’amendement 1 ainsi que ce dont on dispose pour
l’instant de l’amendement 2. C’est sur cette Revision 1 que nous allons travailler.
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.
1 / 13 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !