Les environnements virtuels 3D sont des applications de rรฉalitรฉ virtuelle qui ont, au fil des annรฉes, gagnรฉ en nombre et en diversitรฉ dโusages. Cette technologie a en effet trouvรฉ des applications dans divers domaines qui vont du divertissement ร des usages professionnels de haute prรฉcision. Leur diversitรฉ et leur nombre posent un problรจme pour lequel il nโexiste pas de solution universelle : lโimpossibilitรฉ de communiquer dโun environnement virtuel ร un autre. Il est en effet extrรชmement difficile dโรฉchanger des donnรฉes entre deux environnements virtuels mais รฉgalement dโaccรฉder ร plusieurs environnements virtuels par lโintermรฉdiaire dโune mรชme application cliente.
Cet รฉtat de fait pose de nombreux problรจmes qui freinent la diffusion et lโadoption des environnements virtuels 3D :
โ la rรฉutilisation de donnรฉes : lโimpossibilitรฉ dโรฉchanger et de partager directement des donnรฉes dโun environnement virtuel ร un autre empรชche la rรฉutilisation des donnรฉes et plus prรฉcisรฉment des contenus des environnements virtuels. En effet, bien quโil existe une large offre dโoutils permettant de produire des contenus 3D, ceux-ci sont plus ou moins intuitifs ร manipuler. Il est donc trรจs intรฉressant de pouvoir rรฉutiliser des modรจles existants car leur rรฉalisation est une tรขche coรปteuse et consommatrice de temps ;
โ la rรฉutilisation et lโinterchangeabilitรฉ des composants : de mรชme quโil est pratiquement impossible de rรฉutiliser directement des contenus 3D, il en va de mรชme pour les composants logiciels qui permettent de gรฉnรฉrer lโenvironnement virtuel. Ceux-ci sont en effet compatibles avec un petit sous-ensemble dโautres composants et de contenus 3D ce qui limite leur rรฉutilisation dans un autre environnement virtuel. Il est par consรฉquent souvent nรฉcessaire de dรฉvelopper de nouveaux composants pour chaque environnement virtuel ce qui majore encore leur coรปt et leur temps de production ;
โ le recours ร la conversion : une solution couramment utilisรฉe pour rรฉutiliser les contenus et les composants consiste ร convertir les donnรฉes utilisรฉes mais la conversion est souvent synonyme dโerreurs et de pertes de donnรฉes qui peuvent rendre les contenus convertis inexploitables ;
โ les problรจmes de portage : le manque dโinteropรฉrabilitรฉ pose aussi problรจme lorsquโun environnement virtuel doit รชtre portรฉ sur un autre systรจme (nouveau client ou nouveau terminal) ;
โ les difficultรฉs dโaccessibilitรฉ : les environnement virtuel 3D sont gรฉnรฉralement accessibles au travers dโune application cliente qui leur est gรฉnรฉralement propre. Pour accรฉder ร un autre environnement virtuel, il est nรฉcessaire dโutiliser une autre application cliente. Lโinteropรฉrabilitรฉ permet de rรฉsoudre tous ces problรจmes de faรงon ร accroรฎtre et ร simplifier lโutilisation des environnements virtuels 3D. Il faut cependant distinguer lโinteropรฉrabilitรฉ entre les applications des environnements virtuels 3D et lโinteropรฉrabilitรฉ entres les composants des environnements virtuels 3D. Nous nous intรฉressons ici au second cas, nous cherchons ร proposer une solution pour lโinteropรฉrabilitรฉ entre les contenus et les composants logiciels des environnements virtuels 3D mais aussi entre les contenus eux-mรชmes et entre les composants logiciels eux-mรชmes.
QUโEST CE QUE LโINTEROPรRABILITร ?ย
DรFINITION
Le terme ยซย interoperabilityย ยป est apparu en 1977 et vient de la contraction de deux mots ; ยซย interย ยป mot latin signifiant ยซย entreย ยป et ยซย operabilityย ยป qui pourrait รชtre traduit par ยซย utilisableย ยป. Le terme anglais ยซย interoperabilityย ยป a รฉtรฉ traduit par interopรฉrabilitรฉ mais une traduction plus proche de sa signification originelle serait interutilisabilitรฉ. Cโest une notion que lโon retrouve aujourdโhui dans de nombreuses branches de lโinformatique. On dit que deux systรจmes sont interopรฉrables lorsque ceux-ci peuvent fonctionner et communiquer ensemble sans quโil soit nรฉcessaire de modifier lโune ou lโautre des parties au prรฉalable. Il faut faire la distinction entre lโinteropรฉrabilitรฉ et la compatibilitรฉ. Lโinteropรฉrabilitรฉ entre deux systรจmes, ร lโinverse de la compatibilitรฉ, nรฉcessite que ces deux systรจmes puissent partager des donnรฉes ou des ressources sans restriction dโaccรจs. Deux systรจmes peuvent รชtre compatibles sans pour autant donner un accรจs direct ร leurs donnรฉes ou ร leurs ressources comme cโest le cas lorsque deux systรจmes propriรฉtaires collaborent. Ils peuvent รชtre utilisรฉs conjointement mais une interface bloque lโaccรจs direct ร leurs donnรฉes respectives.
LES ENJEUX DE LโINTEROPรRABILITรย
Lโinteropรฉrabilitรฉ dans le monde de lโinformatique est une notion cruciale. Elle est souvent dรฉterminante pour lโadoption dโune nouvelle technologie et est รฉgalement un gage de pรฉrennitรฉ dans un domaine qui รฉvolue extrรชmement vite. Le succรจs du modรจle du Web en est un bon exemple car il est en grande partie liรฉ ร son interopรฉrabilitรฉ. En effet, la capacitรฉ du Web ร pouvoir รชtre accessible avec nโimporte quel navigateur, sur nโimporte quelle machine a permis une adoption massive et rapide de cette technologie. La notion dโinteropรฉrabilitรฉ est souvent liรฉe ร la mise en place de normes qui vont contraindre les dรฉveloppements futurs. Les rรจgles dรฉfinies dans la norme vont permettre dโassurer lโinteropรฉrabilitรฉ entre deux entitรฉs dรฉveloppรฉes dans des contextes diffรฉrents. Lโadoption dรจs sa crรฉation du format HTML et du protocole HTTP sont les normes qui ont structurรฉ le dรฉveloppement du Web. De ce fait, il est parfois reprochรฉ ร lโinteropรฉrabilitรฉ de limiter les innovations techniques car les contraintes imposรฉes brident les nouveaux dรฉveloppements. Cependant, ร lโinverse, le manque dโinteropรฉrabilitรฉ peut mener ร une situation de monopole, elle aussi nรฉfaste ร lโinnovation. En effet si un produit non interopรฉrable est adoptรฉ massivement cela peut bloquer les innovations concurrentes. Lโinteropรฉrabilitรฉ est ainsi une situation souhaitable dans la majoritรฉ des cas mais celle-ci ne doit pas se faire au prix dโun blocage des รฉvolutions potentielles dโun systรจme. Si lโon rapporte cette notion aux environnements virtuels, elle se traduit par la possibilitรฉ de permettre ร une entitรฉ dโinteragir avec un environnement virtuel diffรฉrent de celui pour lequel elle a รฉtรฉ conรงue. Lโinteropรฉrabilitรฉ des environnements virtuels 3D permettrait non seulement de rรฉutiliser directement les contenus et les composants des environnements virtuels existants sans les convertir mais รฉgalement de capitaliser les fonctionnalitรฉs et les avantages de chacun pour crรฉer des environnements virtuels plus riches et plus performants. Ceci amรฉliorerait significativement la production des environnements virtuels mais faciliterait รฉgalement leur utilisation. Lโinteropรฉrabilitรฉ des environnements virtuels 3D rendrait en effet possible la navigation et lโinteraction avec une multitude dโenvironnements virtuels en utilisant un client de visualisation unique.
PRรSENTATION DES ENVIRONNEMENTS VIRTUELS 3D
La terminologie utilisรฉe pour la notion dโenvironnement virtuel est รฉtendue dans la littรฉrature. On parle couramment dโenvironnement virtuel, de monde virtuel, dโespace virtuel ou dโunivers virtuel. Tous ces termes englobent des notions similaires mais cependant nuancรฉes qui ont trait ร la rรฉalitรฉ virtuelle. La dรฉfinition de la rรฉalitรฉ virtuelle qui fait rรฉfรฉrence et sur laquelle nous nous basons dans ces travaux est celle proposรฉe dans ยซย Le Traitรฉ de la Rรฉalitรฉ Virtuelleย ยป [FMB+06] :
Dรฉfinition 1.1 La rรฉalitรฉ virtuelle est un domaine scientifique et technique exploitant lโinformatique et des interfaces comportementales en vue de simuler dans un monde virtuel le comportement dโentitรฉs 3D, qui sont en interaction en temps rรฉel entre elles et avec un ou des utilisateurs en immersion pseudo-naturelle par lโintermรฉdiaire de canaux sensori-moteurs.
Les termes de monde virtuel, espace virtuel, univers virtuel et environnement virtuel sont similaires et dรฉsignent le monde simulรฉ dans une application de rรฉalitรฉ virtuelle. On peut nรฉanmoins constater quelques nuances en fonction du contexte dโutilisation et notamment de la communautรฉ visรฉe par ce contexte. Certaines communautรฉs prรฉfรฉreront utiliser le terme dโenvironnement virtuel alors que dโautres parleront systรฉmatiquement de monde virtuel. En effet lโun ou lโautre de ces termes peut รชtre prรฉfรฉrรฉ selon lโรฉtendue et le rรฉalisme du monde simulรฉ : deux propriรฉtรฉs qui permettent de caractรฉriser le monde. Dans le contexte de cette thรจse, nous avons choisi dโutiliser le terme dโenvironnement virtuel 3D car sa signification est suffisamment vaste pour englober lโensemble des applications 3D auxquelles les travaux prรฉsentรฉs ici sโappliquent.
Selon les fonctionnalitรฉs demandรฉes par la finalitรฉ de lโapplication de rรฉalitรฉ virtuelle, un environnement virtuel 3D peut possรฉder les caractรฉristiques suivantes :
– lโutilisateur peut y avoir une reprรฉsentation sous forme dโavatar ;
– lโutilisateur peut y crรฉer de nouveaux objets ;
– lโutilisateur peut interagir avec dโautres utilisateurs ;
– lโenvironnement peut simuler dโautres sens humains (lโouรฏe et le toucher notamment) ;
– lโenvironnement peut รชtre partagรฉ ;
– lโenvironnement peut รชtre persistant.
Dโautre part, un environnement virtuel 3D est plus ou moins complexe et nรฉcessite la mise en ลuvre de nombreuses techniques qui vont permettre dโoptimiser le compromis entre rรฉsultat souhaitรฉ et capacitรฉ du matรฉriel informatique ciblรฉ. En effet, ce dernier รฉtant plus ou moins puissant, il ne permet pas toujours de rรฉaliser la totalitรฉ des spรฉcifications demandรฉes lors de la conception.
CLASSIFICATION DES ENVIRONNEMENTS VIRTUELS 3D
LES JEUX VIDรOS
Le divertissement est historiquement lโun des premiers usages des environnements virtuels. Il est donc logique que le domaine des jeux vidรฉos soit le principal crรฉateur dโenvironnement virtuel 3D de nos jours. Les diffรฉrents jeux vidรฉo proposent plus ou moins de fonctionnalitรฉs selon le type de jeu pour lequel ils ont รฉtรฉ crรฉรฉs. Les principaux types de jeux vidรฉo sont :
– les jeux de tirs subjectifs ou FPS (First-Person Shooters ) : le point de vue est celui de lโutilisateur qui est, en gรฉnรฉral, un personnage muni dโune arme. (Exemple : Quake, Unreal Tournament, Half-Life, …). Dans ces jeux, le monde est visuellement trรจs rรฉaliste et relativement รฉtendu.
– les jeux de plateforme : ce sont les jeux dont lโaction est basรฉe sur un personnage tierce (Exemple : Space panic, Donkey Kong, Super-Mario Brothers, …). Pour ce type de jeu, le monde nโest pas toujours tridimensionnel, son rรฉalisme importe peu et il est plutรดt restreint.
– les jeux de combat : ces jeux sont gรฉnรฉralement jouables ร deux et les deux personnages doivent sโaffronter au cours dโun combat (Exemple : Soul Calibur, Tekken, Mortal kombat, …). Le monde y est restreint et le rรฉalisme est de moindre importance.
– les jeux de course : ces jeux se dรฉroulent sur un circuit et le joueur doit concourir ร une courses de voiture ou tout autre type de vรฉhicule (Exemple : Grand Turismo, Need For Speed,…). Pour ce type de jeux, la superficie du monde se limite aux circuits mais le rรฉalisme visuel et physique y est gรฉnรฉralement essentiel.
– les jeux de stratรฉgies ou RTS (Real Time Strategy) : dans ce type de jeu, le joueur doit conquรฉrir un monde en commandant son unitรฉ de combat (Exemple : Age Of Empires, Warcraft, Command Conquer, …). Ce genre de jeu attache peu dโimportance au rรฉalisme du monde mais celui-ci peut รชtre trรจs รฉtendu.
– les jeux massivement multijoueurs ou MMOG (Massively Multiplayer Online Games) : ce sont des jeux en ligne oรน des utilisateurs du monde entier sโaffrontent dans un monde virtuel (Exemple : World Of Warcraft, EverQuest, Star Wars Galaxies, …). Ce dernier est gรฉnรฉralement trรจs vaste et continue de sโรฉtendre ร mesure que des mises ร jour sont proposรฉes, cependant son rรฉalisme nโest pas primordial.
– les jeux de simulation de vie : ce type de jeu nโa pas de but prรฉcis, il sโagit de gรฉrer la vie dโun personnage ou dโune famille. (Exemple : Les Sims, SimCity). Le monde est restreint et son rรฉalisme est important.
– les jeux de rรดle ou RPG (Role-Playing Games) : dans ces jeux, le joueur incarne un ou plusieurs personnages et doit mener ร bien une quรชte. Ils peuvent รชtre massivement multijoueurs auquel cas on peut les dรฉsigner par le terme MMORPG (Massively Multiplayer Online Role-Playing Games) (Exemple : Dragon Quest). Le monde dans lequel le joueur รฉvolue est souvent trรจs vaste et ce dโautant plus sโil est multijoueur mais on attache peu dโimportance ร son rรฉalisme.
– les jeux de sport : jeux de simulation du sport (Exemple : FIFA, NBA ) qui requiรจrent un environnement rรฉaliste mais peu รฉtendu.
|
Table des matiรจres
Introduction
I รtat de lโart
1 Les environnements virtuels 3D
1.1 Prรฉsentation des environnements virtuels 3D
1.2 Classification des environnements virtuels 3D
1.2.1 Les jeux vidรฉos
1.2.2 Les mรฉtavers
1.2.3 Lโapprentissage en ligne (e-learning) et les jeux sรฉrieux (serious games)
1.2.4 Le web gรฉospatial
1.2.5 La Conception Assistรฉe par Ordinateur .
1.3 Synthรจse et conclusion
2 Lโinteropรฉrabilitรฉ des environnements virtuels 3D
2.1 Lโinteropรฉrabilitรฉ des contenus 3D
2.1.1 Entente sur un modรจle
2.1.2 Entente sur un mรฉtamodรจle
2.1.3 Rรฉconciliation des modรจles
2.2 Lโinteropรฉrabilitรฉ des composants logiciels de rendu
2.2.1 Entente sur un modรจle
2.2.2 Entente sur un mรฉtamodรจle
2.2.3 Rรฉconciliation des modรจles
2.3 Lโinteropรฉrabilitรฉ des environnements virtuels 3D
2.3.1 Entente sur un modรจle
2.3.2 Entente sur un mรฉtamodรจle
2.3.3 Rรฉconciliation des modรจles
2.4 Synthรจse et conclusion
2.4.1 Synthรจse
2.4.2 Conclusion
3 Analyse des รฉlรฉments constitutifs dโun environnement virtuel 3D
3.1 Analyse des contenus des environnements virtuels 3D
3.1.1 La description des contenus 3D
3.1.2 Les formats 3D
3.1.3 La structuration des reprรฉsentations
3.2 Analyse des composants logiciels des environnements virtuels 3D
3.2.1 Les composants de rendu des environnements virtuels 3D
3.2.1.1 Le moteur de rendu graphique
3.2.1.2 Le moteur physique
3.2.1.3 Le moteur de comportement et dโintelligence artificielle
3.2.1.4 Le moteur de son
3.2.1.5 Le moteur de mise en rรฉseau
3.2.1.6 Le gestionnaire de pรฉriphรฉriques
3.2.2 Les contraintes du rendu temps rรฉel
3.2.3 Les รฉlรฉments dโoptimisation du processus de rendu
3.2.3.1 Lโรฉlimination des parties cachรฉes
3.2.3.2 Le modรจle dโรฉclairage
3.3 Synthรจse et conclusion
3.3.1 Les รฉlรฉments communs aux contenus 3D et aux composants de rendu
3.3.2 Conclusion
II Contribution
4 Du graphe de scรจne ร lโadaptateur de graphes de scรจne
4.1 Le graphe de scรจne comme dรฉnominateur commun
4.2 Lโadaptateur de graphes de scรจne : proposition fondamentale
5 Lโadaptateur de graphes de scรจne
5.1 Prรฉsentation de lโarchitecture gรฉnรฉrale
5.2 Les composants du SGA
5.2.1 Le SGA
5.2.1.1 Les interfaces de programmation dโadaptation
5.2.1.2 Le noyau
5.2.1.3 Le module de mise en correspondance des nลuds
5.2.2 Les modules dโadaptation
5.2.2.1 Les modules dโadaptation de formats
5.2.2.2 Les modules dโadaptation de moteur
5.3 Lโintรฉgration du SGA dans un environnement virtuel 3D
5.3.1 La phase de dรฉmarrage et dโinitialisation
5.3.2 La phase dโexรฉcution de lโapplication
5.4 Le SGA : discussion et fonctionnalitรฉs
5.4.1 Interopรฉrabilitรฉ avec les contenus 3D
5.4.2 Interopรฉrabilitรฉ avec les composants de rendu
5.4.3 Interopรฉrabilitรฉ entre les contenus et les composants de rendu
5.5 Synthรจse et conclusion
6 Implรฉmentation de lโadaptateur de graphes de scรจne et exemples dโinstanciations de modules dโadaptation
6.1 Notre implรฉmentation du SGA
6.1.1 Le noyau
6.1.2 La fabrique des instances de modules dโadaptation de format
6.1.3 La fabrique des instances de modules dโadaptation de moteur
6.1.4 Le module de mise en correspondance des nลuds
6.2 Lโinstanciation du SGA
6.2.1 Les formats
6.2.1.1 Instanciation du module dโadaptation X3D
6.2.1.2 Instanciation du module dโadaptation Collada
6.2.1.3 Remarques sur les instances de module dโadaptation de format
6.2.2 Les moteurs
6.2.2.1 Instanciation du module dโadaptation Ogre
6.2.2.2 Instanciation du module dโadaptation Bullet
6.2.3 Lโapplication de test
6.3 รvaluation du SGA au travers de notre instanciation
6.3.1 Interopรฉrabilitรฉ de X3D et Collada avec lโapplication
6.3.2 Interopรฉrabilitรฉ des moteurs Ogre et Bullet avec lโapplication
6.3.3 Interopรฉrabilitรฉ entre les formats et les moteurs
6.3.4 Exemples dโutilisation
6.4 Tests et Discussion
6.4.1 Discussion
6.4.2 Tests
6.4.2.1 Protocole de test
6.4.2.2 Rรฉsultats et interprรฉtation
6.4.2.3 Synthรจse
6.5 Synthรจse et conclusion
7 Vers la composition de scรจnes 3D : un modรจle de conteneur pour les formats 3D
7.1 Un conteneur de fichiers 3D
7.1.1 Vers lโinteropรฉrabilitรฉ entre les formats 3D
7.1.2 Les formats conteneurs
7.1.3 Les critรจres de conception
7.2 La conception du format 3DFC
7.2.1 Le modรจle du format 3DFC
7.2.1.1 Les nลuds de description
7.2.1.2 Les nลuds dโinteraction
7.2.2 Utilisation du 3DFC
7.2.2.1 Intรฉgration du 3DFC avec le SGA
7.2.2.2 Le chargement dโun fichier 3DFC par le SGA
7.2.2.3 Le fonctionnement du modรจle de 3DFC pendant lโexรฉcution
7.3 Instanciation du modรจle 3DFC et intรฉgration ร notre implรฉmentation du SGA
7.3.1 Description de scรจne composรฉe
7.3.2 Mixer les fonctionnalitรฉs des formats 3D
7.3.2.1 Utilisation du nลud Route
7.3.2.2 Utilisation du nลud Match
7.4 Synthรจse et conclusion
7.4.1 Synthรจse
7.4.2 Conclusion
Conclusion
Tรฉlรฉcharger le rapport complet