Les environnements virtuels 3D

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.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

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

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *