Programmation en RV

1 - Introduction

La programmation en réalité virtuelle nécessite la connaissance de nombreux outils informatiques tels que les langages orientés objet, les systèmes temps réel, réseaux, langages de modélisation…Dès lors, il peut être intéressant pour les personnes possédant des connaissances limitées dans ces domaines, de créer des plate-formes de réalité virtuelle ainsi que des logiciels permettant d'utiliser des outils avancés pour la RV. De nombreuses boîtes à outils ont alors été mises sur le marché au début des années 90. Parmi les plus connues, on peut citer " WorldToolKit (WTK)" [Sense8, 1991], "Cyberspace developer kit " [Autodesk, 1993], ou encore "Mercury ". Ces boîtes à outils pour la RV sont des bibliothèques de fonctions orientées objet spécialement conçues pour les spécifications de la RV. Les bibliothèques actuellement utilisées permettent d'écrire des modules d'applications tout en utilisant le même noyau de simulation. Tous les outils utilisés acceptent les fichiers de CAO 3D (DFX,…), ce qui permet une importante réduction du temps de développement, en utilisant des bases de données d'objets 3D. De plus, toutes les boîtes à outils actuelles de RV possèdent des drivers de communication écrits pour les outils d'entrée / sortie tels que Datagloves, Cybergloves, ou encore des lunettes de vision 3D. Enfin, toutes les boîtes à outils possèdent des programmes évolués intégrés tels que l'ombrage de polygones, l'ombrage à plat ou encore le rendu par des textures.

2 - Editeurs de RV

Un éditeur de RV est un outil très puissant pour le développeur d'une simulation. On peut, grâce à l'éditeur, voir directement le résultat de la création ou modification d'objets 3D. Parmi les éditeurs les plus connus, on peut citer Renderware (1993), VRT3 (1993), Amaze, 3DS (Autodesk), Lightwave 3D, et plus récemment 3Dsmax 2.0 / 2.5 (KINETIX, 1998) ou Houdini 2.5 (qui permet de gérer la 3D procédurale par l'utilisation d'interfaces intuitives, telles que les b-Splines ou les X-splines.

3 - Modeleurs

La plupart des éditeurs de RV ont, par construction, des facilités de modélisation de la dynamique. Actuellement, même dans des situation complexes, les éditeurs actuels permettent de gérer les scènes créées en prenant en compte les éléments naturels tels que la pesanteur, certaines déformations, forces ou autres sans avoir à développer une seule ligne de code en langage orienté objet. Par exemple, 3DSmax 2.0 possède pour la modélisation, un certain nombre de primitives de base telles que des sphères, sphères géodésiques, cônes, parallelépipèdes, cubes, tores,… permettant de définir le modèle géométrique de l'objet (sa forme), un certain nombre de fonctions permettant le déplacement de l'objet dans l'espace ainsi que son positionnement, puis différentes fonctions pour définir le modèle physique de l'objet à modéliser (rugosité, surface,…). A cela s'ajoute des fonctions de déformation de l'objet (torsion, extrusion,…).

4 - Programmation en RV et séquencement d'événement

Pendant la simulation, l'entrée utilisateur constitue une série d'événements pour le programme de la boîte à outils. L'entrée utilisateur doit être lue en temps réel à chaque cycle de la simulation. Ordonner ou séquencer tous ces événements en temps réel engendre un travail de programmation important avec l'aide de fonctions C. Certaines boîtes à outils actuelles permettent d'automatiser le séquençage des événements. Les autres nécessitent l'utilisation de fonctions qui ont une synthaxe de type "Class method" afin de faciliter la programmation orientée objet.