ULCO-EIL3Info-RV-TP : Développement d une application de réalité virtuelle Julien Dehos 31 août 2014 1 Introduction Vous allez développer une application de réalité virtuelle en utilisant une bibliothèque C++ existante (herve) ainsi que quelques logiciels classiques (blender, gimp, audacity...). Notions abordées : développement d une application de réalité virtuelle immersion, stéréoscopie (HMD Oculus Rift) interaction (gamepad, capteur de mouvement) rendu 3D, son 3D, vidéo, animation... Organisation du TP : 4 séances "TP" : découverte de la bibliothèque et des logiciels 4 séances "projet" : réalisation d une application de RV répondant à un cahier des charges travaillez avec un même binôme sur l ensemble du TP/projet 2 Mise en place du projet C++ (TP1) 2.1 Récupérez la bibliothèque herve (http://www-lisic.univ-littoral.fr/~dehos). 2.2 Compilez libherve, libherveovr et DemoSdl1 puis testez DemoSdl1 (HMD, gamepad, son). 2.3 Compilez et testez Demo. 2.4 Vous allez partir de l application Demo pour réaliser vos TP et votre projet de réalité virtuelle. Vous pourrez également vous inspirez de l application DemoSdl1. Regardez le code source fourni pour ces deux applications. ULCO-EIL3Info-RV-TP : Développement d une application de réalité virtuelle page 1/ 6
3 Shaders (TP1) 3.1 Modifiez votre application de façon à pouvoir paramétrer le canal bleu de l image affichée. Indication : ajoutez un attribut à la scène et fixez sa valeur à la construction. 4 Interaction (TP1) 4.1 Ajoutez la gestion du gamepad à votre application pour contrôler l attribut ajouté précédemment (canal bleu de l image affichée). 5 Transformations géométriques (TP2) 5.1 Modifiez votre shader et votre scène de façon à pouvoir spécifier une transformation géométrique. Testez avec une projection perspective comme transformation. 5.2 Ajoutez une translation selon z et une rotation selon y, contrôlables avec le gamepad. 5.3 Testez l ordre des transformations (translation, rotation). 6 Navigation (TP2) 6.1 Modifiez votre application pour avoir une caméra "walkthrough" où l orientation est contrôlée par le casque de RV et les déplacements (avant, arrière, gauche, droite) par le gamepad. Indication : utilisez la décomposition "Model-View-Projection" des transformations ainsi que les paramètres passés à la méthode de rendu de la scène. ULCO-EIL3Info-RV-TP : Développement d une application de réalité virtuelle page 2/ 6
7 Textures (TP2) 7.1 En utilisant gimp ou mypaint, faites une jolie image de texture et exportez-là en PNG dans le dossier bin de votre application. 7.2 Modifiez votre application de façon à texturer le quad avec votre image de texture. 8 Objets 3D (TP3) 8.1 Ajoutez un second quad texturé à votre scène (horizontal et devant le premier quad). ULCO-EIL3Info-RV-TP : Développement d une application de réalité virtuelle page 3/ 6
8.2 En utilisant blender, modélisez un objet 3D (avec normales, coordonnées de texture, matériau et texture) et exportez-le en OBJ dans le dossier bin de votre application. 8.3 Modifiez votre application pour charger votre OBJ et l afficher à côté des quads. 9 Éclairage (TP4) 9.1 Ajoutez un calcul d éclairage de type Lambert. Pour l instant, codez la position et la couleur de la source de lumière en dur dans la méthode de rendu de la scène. ULCO-EIL3Info-RV-TP : Développement d une application de réalité virtuelle page 4/ 6
10 Animation (TP4) 10.1 Animez votre objet 3D avec une rotation de période 2 s. 10.2 Animez la position de la source de lumière avec une trajectoire spline. 11 Son 3D (TP4) 11.1 Récupérez un fichier audio (libre de droit). Si nécessaire, convertissez-le en mono avec audacity. 11.2 Modifiez votre application pour que la source de lumière soit également une source audio (avec spatialisation et effet doppler). ULCO-EIL3Info-RV-TP : Développement d une application de réalité virtuelle page 5/ 6
12 Vidéo (TP4) 12.1 Modifiez votre application pour y intégrer une vidéo. 13 Projet 13.1 Réalisez une application de traitement d une phobie (acrophobie, claustrophobie, agoraphobie...). Contraintes à respecter : matériel : casque Oculus Rift + gamepad + casque audio immersion dans un monde virtuel 3D sonorisé animation ou interaction originale (par exemple : tomber, déclencher un événement...) Étapes à réaliser : choisir la phobie à traiter, faire des recherches documentaires imaginer un scénario permettant de traiter la phobie (monde virtuel, événements, interactions...) déterminer les fonctionnalités de réalité virtuelle à mettre en place coder l application... ULCO-EIL3Info-RV-TP : Développement d une application de réalité virtuelle page 6/ 6