Conception d'environnements virtuels
20 tarjetasCe cours présente les méthodes nécessaires pour concevoir des environnements virtuels locaux ou distribués, incluant la modélisation 3D, l'interaction, la détection de collisions, et les outils technologiques disponibles.
20 tarjetas
Résumé du Cours sur la Réalité Virtuelle
Ce cours est conçu pour initier les étudiants aux méthodes essentielles de conception d'environnements virtuels, qu'ils soient locaux ou distribués. Il couvre les processus de modélisation, d'interaction, de détection de collision et la réponse associée, ainsi que les technologies matérielles et logicielles de pointe dans le domaine.
1. Bases de la Conception d'un Environnement Virtuel
La conception d'un environnement virtuel débute par la définition de la scène virtuelle et la modélisation 3D des objets qui la composent, incluant leur nature et cinématique. L'interactivité est cruciale, nécessitant la définition des types d'interaction adaptés à l'objectif de l'environnement.
1.1. Définitions et Concepts
Environnement Virtuel: Système de simulation où l'utilisateur interagit avec un modèle 3D de données en temps réel, créant une impression d'être dans un lieu spécifique. Initialement appelé "réalité virtuelle" par le MIT (début des années 90) et popularisé par Jaron Lanier en 1986.
Réalité Virtuelle (selon Grigore Burdea): Interface homme-machine créant une expérience sensorielle en temps réel avec un monde artificiel via la vision, l'audition, le toucher et l'odorat.
Triangle de la réalité virtuelle: Basé sur l'immersion, l'interaction et la perception.
Immersion: Sensation d'être ou d'habiter l'espace virtuel, améliorée par le son et le retour d'effort haptique.
Interaction: Possibilité de se déplacer et de manipuler des objets virtuels avec une perception immédiate des actions (rendu temps réel).
Perception: Ajustable selon les besoins de l'application (sensori-moteur ou cognitif).
Applications: Militaire, aérospatial, jeux et loisirs, architecture, design, visualisation de données scientifiques (biologie moléculaire), apprentissage médical, psychothérapie, téléprésence.
1.2. Conception d'un Environnement Virtuel
Le processus implique la définition des objets, de leurs interactions et des réponses aux collisions.
1.2.1. Définition de la Scène Virtuelle et Modélisation d'Objets 3D
La scène virtuelle est une collection d'objets, modèles et comportements liés à l'application.
Modélisation 3D: Deux types principaux sont définis:
Modèles non polygonaux:
CSG (Constructive Solid Geometry): Objets construits à partir de primitives géométriques (sphère, cube, cylindre) combinées par fonctions mathématiques.
Surfaces implicites: Définies par des fonctions .
Surfaces paramétrées: Décrivent uniquement les frontières des surfaces.
Modèles polygonaux: Représentation à base de polygones, très utilisée pour sa simplicité. Peuvent être non structurés (soupe de polygones) ou structurés (convexes/non-convexes). La plupart des modèles non polygonaux peuvent être convertis en polygonaux.
Objets: Peuvent être rigides, déformables ou fluides. Les objets déformables sont plus coûteux en calcul.
Gestion des mouvements:
Méthode 2-body: Un seul objet en mouvement (ex: applications haptiques avec joystick).
Méthode n-body: Plusieurs objets en mouvement, plus coûteuse en calcul.
Méthodes de modélisation:
À partir d'images 2D.
Procédurale (par code).
Interactive (logiciels comme Blender, 3DSmax, MakeHuman).
Téléchargement d'objets (ex: Asset store Unity 3D).
1.2.2. Interaction
Méthode pour effectuer une tâche dans un environnement virtuel. Elle inclut la navigation, la sélection, la manipulation et le contrôle d'application.
1.2.2.1. La Navigation
Permet à l'utilisateur de se déplacer dans la scène virtuelle. Elle désigne l'ensemble des méthodes pour connaître la position d'un objet par rapport à un système de référence.
Déplacement: Composante motrice (mouvements physiques).
Recherche d'itinéraire: Composante cognitive (se repérer, choisir une trajectoire).
Facteurs de conception: Vitesse, précision, conscience spatiale, facilité d'apprentissage/utilisation, capacité à collecter des informations, présence virtuelle, confort.
Périphériques adaptés: Tapis VR (ex: Kat VR), capteurs de mouvement (Kinect Azure).
Détermination de la direction: Joystick (métaphore de la soucoupe volante), orientation de la tête, utilisation de la main (métaphore "tirer sur une corde"), direction du torse, déplacement d'icône.
Calcul de la vitesse: Basé sur l'écartement des mains ou la vitesse de montée/descente des genoux.
Types de navigation:
Libre: Exploration sans destination précise.
Assistée: Déplacement vers une cible précise.
Téléportation: Déplacement instantané, peut désorienter.
1.2.2.2. La Sélection et la Manipulation
La désignation d'un objet et sa validation (bouton, geste, commande vocale). La manipulation est la modification des propriétés d'un objet (position, orientation, couleur, échelle, texture).
Manipulation directe: Action directe de l'utilisateur sur l'objet.
Manipulation indirecte: Action via entités graphiques (menus 3D) ou matérielles.
Techniques de sélection:
Exocentriques: Contrôle du monde virtuel depuis l'extérieur.
Monde-en-miniature.
Poupées Vaudou.
Égocentriques: Action directe depuis l'intérieur de l'environnement virtuel.
Métaphore de la main virtuelle:
Préhension: Utilisation de la main propre, simple mais problématique pour objets distants.
Gogo: Extension du bras virtuel par fonction non-linéaire.
Métaphore du pointeur virtuel:
Rayon virtuel (Ray-Casting): Rayon laser depuis la main virtuelle, simple mais difficile pour petits objets distants.
Techniques hybrides:
HOMER: Rapidité du Ray-Casting pour la sélection, précision de la main virtuelle pour la manipulation.
Changement d'échelle: Direction du regard pour la sélection, puis diminution des objets pour manipulation.
1.2.2.3. Le Contrôle d'Application
Permet d'exécuter une commande pour changer le mode d'interaction ou l'état du système (ex: personnaliser le monde virtuel) via des menus.
1.2.3. Détection de Collision
Nécessaire pour gérer l'interaction entre objets et éviter l'interpénétration. La méthode dépend de la nature des objets et de la réponse souhaitée.
1.2.3.1. Pipeline de Détection de Collision
Conçu pour réduire la complexité, il est divisé en trois niveaux (voir Figure 1.16):
Détection grossière (Broad Phase): Élimine les zones où l'interaction est impossible, sélectionne les paires d'objets potentielles en collision.
Méthodes de partitionnement spatial: Divisent l'espace en unités (voxels, octrees, quadtrees, k-d trees, BSP). Adaptées aux corps déformables.
Méthodes topologiques: Exploitent la position relative des objets (ex: Sweep and Prune). Adaptées aux corps déformables.
Méthodes cinématiques: Prennent en compte le mouvement des objets.
Détection étroite (Narrow Phase): Basée sur la comparaison des volumes englobants des objets.
Méthodes de force brute: Comparaison de volumes englobants (sphères, AABB, OBB, k-DOP, etc.). Compatibles avec objets déformables.
Algorithmes basés sur caractéristiques: Calculent la distance entre primitives (facettes, arêtes, sommets) (ex: Lin et Canny, "Voronoi marching").
Algorithmes basés sur simplex: Utilisation de la différence de Minkowski (ex: GJK, EGJK, JL, SOLID).
Détection exacte (Exact Phase): Sélectionne les entités exactes en collision et calcule le degré d'interférence.
Algorithmes basés sur volumes englobants: Hiérarchies de volumes englobants (AABB, OBB, sphères) pour identifier les zones de collision.
Algorithmes basés sur image: Utilisation de requêtes d'occultation dans l'espace image, adaptés aux cartes graphiques.
Remarque: Les moteurs de jeux utilisent souvent une détection de collision par boîtes englobantes avec des options de paramétrage (ex: capsule sous Unity3D).
1.2.3.2. Autres Approches d'Accélération
GPU (Graphics Processing Unit): Accélère les calculs de détection de collision grâce au parallélisme.
Architecture multi-cœurs: Adaptation des cœurs en fonction des besoins, permet des algorithmes parallélisés (ex: GPGPU avec CUDA, OpenCL, OpenMP).
1.2.3.3. Réponse à la Collision
Après détection, la réponse peut être booléenne, une mesure de distance, une identification des surfaces en interaction, un volume/vecteur d'extraction.
Types de retour d'effort haptique:
Retour d'effort passif: Modélise les forces du monde réel.
Retour pseudo-haptique: Exploite l'illusion sensorielle entre le toucher et d'autres sens.
Retour dissipatif ou haptique actif: Utilise une interface haptique pour renvoyer des informations tactiles ou kinesthésiques.
Conception avec retour d'effort:
Acquisition de la position de l'effecteur.
Détection de collisions.
Calcul du retour d'effort (moteur physique calcule la force de réaction).
Envoi des consignes de forces à l'interface haptique.
Approches de réponse à la collision:
Approche par contrainte: Collision et contact comme contrainte géométrique, difficile à résoudre en temps réel.
Approche impulse: Collision comme interaction ponctuelle, non adaptée aux objets déformables.
Approche par pénalité: Représentation continue de la collision, force de répulsion proportionnelle à la distance d'interpénétration, adaptée aux objets déformables.
Approche hybride impulse-pénalité: Permet l'interpénétration pour calculer les forces de réaction.
2. Les Périphériques de la Réalité Virtuelle
Le matériel est essentiel en réalité virtuelle et augmentée.
2.0.1. Technologie d'Actionneurs pour Retour d'Effort
Moteurs: Courant continu (le plus utilisé), piézoélectrique (recherche), hydrauliques, pneumatiques, magnéto-rhéologiques.
Périphériques à base fixe: Bras, stylo, souris à retour d'effort, systèmes à câbles.
Périphériques à base non fixe: Gants, exosquelettes.
Gants à retour d'effort: Liberté de manipulation, ressentent la rigidité (ex: Rutgers Master II, CyberGrasp, HaptX, Manus VR).
Bras maîtres: Fortes forces, 6 degrés de liberté (ex: Virtuose 6D, DELTA Haptic Device, PHANTOM Omni).
Manches ou souries à retour d'effort: (ex: PenCat/Pro, Wingman Force Feedback, Sidewinder).
Systèmes à câbles: Simplifient la mécanique, multiples configurations (ex: SPIDAR).
Retour tactile: Matrice d'aiguilles vibrantes, actionneurs piézo-électriques (ex: souris iFeel).
2.1. Les Périphériques d'Affichage pour la RV
Le sens dominant est la vision. Les affichages varient selon les besoins de l'application.
2.2. Classification des Techniques d'Affichage
Affichage semi-transparent ("see through displays"): L'image virtuelle est superposée à la scène réelle (ex: pare-brise de voiture).
Affichage tête-haute avec miroir diélectrique: Utilise un miroir diélectrique qui reflète certaines longueurs d'ondes.
Affichage tête-haute par guide d'ondes: L'onde est confinée dans un cœur à haut coefficient de réfraction (ex: lunettes Sony Optical Waveguide).
Affichage avec diodes électroluminescentes transparentes (TOLED): Diodes transparentes, affichage par mélange additif des couleurs.
Affichage fenêtre sur le monde ("Window on the World"): Utilise un écran (ex: smartphone), simple mais peut causer une "nausée de simulation".
Affichage projeté: Projette les éléments virtuels directement sur une surface réelle.
Affichage projeté rétinien: Utilise la rétine comme surface de projection.
2.3. La Stéréoscopie
Affichage de deux images légèrement différentes, une pour chaque œil, pour créer une perception de relief. Crée un volume d'affichage.
2.3.1. Technique de Stéréoscopie
Parallax: Décalage entre les images gauche et droite, affecte la profondeur perçue.
Neutre: Point perçu sur l'écran.
Négatif: Point perçu devant l'écran.
Positif: Point perçu derrière l'écran.
Techniques de rendu 3D:
Stéréoscopie anaglyphe: Sépare les images par canaux de couleur (ex: rouge/cyan), populaire et peu coûteuse.
Stéréoscopie par multiplexage temporel: Entrelace les images gauche/droite dans le temps, nécessite des lunettes 3D actives.
Stéréoscopie par lumière polarisée: Utilise la lumière polarisée, lunettes légères et peu coûteuses, adaptées à un grand nombre de spectateurs.
3. La Réalité Virtuelle Distribuée
Permet à plusieurs personnes de partager le même monde synthétique en réseau, gérant les communications et la cohérence de l'environnement virtuel.
3.1. État Partagé
Un système de RV distribuée est utilisé par plusieurs participants modifiant leur état en permanence. Un état partagé rend l'environnement virtuel plus réaliste.
Défis: Latence, bande passante limitée, pertes de paquets, cohérence des informations.
Compromis: Entre cohérence et débit, selon la dynamique de l'environnement.
Modèles de partage d'état:
Serveur Centralisé: L'état est stocké dans un lieu commun.
Avantages: Simplicité de programmation, cohérence absolue.
Inconvénients: Goulot d'étranglement, sur-coût en communications.
Messages d'Intention: Envoi fréquent de l'état courant.
Avantages: Simple à mettre en œuvre, meilleur débit.
Inconvénients: Consomme beaucoup de bande passante, latence, non transparent.
Messages de Trajectoire: Précise le point d'arrivée et le temps de fin de déplacement.
Avantages: Gère des latences importantes, cohérence parfaite à certains moments.
Inconvénients: Pas de cohérence en cours de mouvement, gestion des obstacles complexe, moins interactif.
Messages de Position: Envoie régulièrement la position des entités et interpole les positions passées.
Avantages: Trajectoire connue, utilisation constante de la bande passante.
Inconvénients: Problèmes de perte de message, trajectoire fausse si la fréquence est basse.
Filtre à Perception Locale: Modifie l'écoulement du temps pour cacher la latence localement.
Avantages: Cache la latence, évite les problèmes de causalité.
Inconvénients: Ne gère pas les interactions directes, problèmes de perte de message.
Prédiction de comportement: Prédit l'état des objets distants en se basant sur des mises à jour.
Avantages: Chaque objet génère ses messages de façon autonome, insensible à la latence, diminue la fréquence des mises à jour.
Inconvénients: Plus complexe à mettre en œuvre, modèle de prédiction dépendant de l'objet, erreurs de prédiction si réseau mauvais.
3.2. Étude de Cas: Jeux en Réseau
Jeux de Stratégie Temps-Réel (RTS): Le joueur commande une armée. Le jeu a une interactivité limitée et nécessite la gestion de milliers d'unités.
Modèle synchrone:
Avantages: Gère un nombre quasi infini d'unités.
Inconvénients: Latence, problème de passage à l'échelle, impossible de rejoindre en cours de partie.
Modèle asynchrone: Un serveur gère la simulation, envoie les informations visibles par chaque joueur.
Avantages: Plus facile à programmer, pas de triche.
Inconvénients: Bande passante augmente avec la durée de la partie, tours de jeu peuvent augmenter.
Jeux à la Première Personne (FPS): Le joueur contrôle un personnage, très interactif.
Un serveur simule le monde, reçoit les ordres et redistribue les résultats.
Utilise une variante du "dead reckoning" pour éviter l'attente.
Avantages: Très interactif.
Inconvénients: Passage à l'échelle difficile (nécessite beaucoup de serveurs, faible latence).
Jeux de Rôle Massivement Multi-Joueurs (MMORPG): Le joueur contrôle un personnage, faible interactivité mais plus que RTS, plusieurs milliers de joueurs partagent un monde.
Shards: Copies identiques de l'univers de jeu, évoluent indépendamment.
Avantages: Possibilité d'ajouter/enlever des shards, diminution de la latence.
Inconvénients: Les joueurs ne sont pas tous dans le même monde.
Zones: Le monde est divisé en régions connectées. Un joueur ne peut pas voir/interagir avec des joueurs d'autres zones.
Avantages: Répartit la charge du monde virtuel.
Inconvénients: Divisions artificielles, une zone populaire peut saturer un ordinateur, difficile de partager le monde a priori.
Instances: Zones réservées à un petit groupe de joueurs et dupliquées pour chaque groupe.
Avantages: Répartit précisément la charge, prévision facile de la charge.
Inconvénients: Duplications de zones pas très naturelles.
Proxies: Cachent les serveurs, attribué au client pour toute la session.
Avantages: Cache les autres serveurs, moins de tentatives de piratage.
Inconvénients: Rajoute de la latence.
Seamless (sans coutures): Le monde virtuel est géré sans zones, découpé en régions allouées dynamiquement à des machines.
Avantages: Monde plus réaliste sans découpages artificiels.
Inconvénients: Architecture plus difficile à gérer et à coder, transferts d'objets complexes.
4. La Réalité Augmentée
Système interactif combinant des entités virtuelles avec des éléments physiques du monde réel en temps réel. Le travail d'Ivan Sutherland (milieu des années 60) a posé les bases (premier casque semi-transparent stéréoscopique).
4.1. Définition
Réalité: Ce qui existe réellement.
Augmenter: Rendre plus grand, plus important.
4.2. Classification de la Réalité Augmentée
Deux systèmes de classification principaux: Fonctionnel et Technique.
4.2.1. Classification fonctionnelle (relation réel-virtuel)
Absence de relation: Contenu virtuel et réel sans lien sémantique (ex: affichage libre).
Fonctionnalité 1: "réalité documentée" ou "virtualité documentée": Lien sémantique basique entre réel et virtuel (ex: information textuelle).
Fonctionnalité 2: "réalité à compréhension ou à visibilité augmentée": Réel et virtuel dans le même cadre d'affichage, nécessitant recalage.
Incrustation d'éléments virtuels passifs pour information complémentaire.
Mis en valeur des objets réels (fil de fer, transparence).
Fonctionnalité 3: Association visuelle du réel et du virtuel:
Superposition: Incrustation d'objets virtuels par-dessus les réels sans occultation.
Association tridimensionnelle: Intégration d'objets virtuels dans le réel, cohabitation spatio-temporelle, gestion des occultations.
Fonctionnalité 4: Association comportementale du réel et du virtuel: Intégration des propriétés physiques des objets virtuels interagissant avec le réel.
Fonctionnalité 5: "substitution du réel par le virtuel" ou "réalité virtualisée": Possibilité de remplacer visuellement la scène réelle par une scène virtuelle équivalente.
4.3. Les Technologies d'Affichage
Trois types de dispositifs de visualisation.
Affichage sur la tête (HeadWorn Display (HWD) ou Head Mounted Display (HMD)): Casques ou lunettes (ex: Hololens) pour percevoir le monde réel ("See-Through").
Fenêtre sur le monde (Handheld Display): Dispositifs mobiles (ex: smartphones avec PokémonGo).
Affichage projeté (Projective Display): Projecteurs augmentant les objets réels par projection directe (ex: projection architecturale).
Empezar cuestionario
Prueba tus conocimientos con preguntas interactivas