Dans son ensemble, ce cours a pour objectif de permettre aux étudiants de comprendre l’intérêt de la réalité virtuelle et de maîtriser sa mise en œuvre, dans le but, par exemple, d’obtenir un modèle virtuel d’un site industriel dans lequel il est possible d’interagir.
Pour ce faire, cet enseignement est organisé en deux parties. La première partie se focalise sur les techniques de modélisation d’un environnement virtuel, et sur le principe d’animation d’objets. A cette occasion, les principes des moteurs graphiques et physiques sont abordés. La dynamique et les interactions avec l’utilisateur sont également étudiées par le biais d’une programmation en C#.
La seconde partie traite de la modélisation des données et de leur visualisation. Il s'agit de sensibiliser à différentes approches classiques pour représenter des objets géométriques en environnement virtuel. Sont ainsi abordées des approches discrètes et continues sur des données volumiques, surfaciques ou ponctuelles. Un accent est porté sur la représentation par des surfaces maillées. Enfin, sont exposées différentes méthodes de rendu permettant aux objets modélisés d'être visualisés : les méthodes de la famille des lancers de rayons et la projection/matricialisation sont étudiées. Une introduction à la rédaction de shaders est également proposée.
Introduction et enjeux de la réalité virtuelle
Problématiques spécifiques : physiologie et psychologie cognitives, interactions homme-machine en environnement immersif (navigation, sélection, manipulation et contrôle d'application).
Prise en main d’un outil de développement pour la réalité virtuelle (Unity 3D et programmation C#)
Théorie et pratique de la dynamique et de la détection de collision
Techniques de modélisation : modèles polygonaux, modèles paramétriques, modèles implicites, modèle voxel, nuage de points, modèles fractals
Techniques de rendu (visualisation) : lancer de rayon et dérivés, projection/matricialisation, productions d'images stéréoscopiques
Modélisation d'environnements virtuels dans Unity
Mise en oeuvre d'intéractions logiques et physiques
Programmation d'approximation de courbes et de surfaces de Bezier dans Unity
Programmation de shaders dans Unity
C++