Philippe Dax
Pièce C218
dax@inf.enst.fr
Avril 2001

Vreng et l'Immersion d'Applications GRAphiques

Description

VREng (Virtual Reality Engine) est un logiciel qui permet de naviguer et d'interagir dans des mondes virtuels en trois dimensions. Un monde virtuel est une scène composée d'objets fixes ou mobiles. La plupart des objets possèdent une texture gif ou png pour les reconnaitre. Certains objets peuvent exécuter des actions sélectionnables par la souris. Ces actions peuvent être soit locales à la 3D, soit déclencher des applications extérieures qui sont appelées "helpers" ou "players". Par exemple, "netscape" pour un objet "web", "xterm" pour un objet "host", "wb" pour un objet "board", "mtvp" pour un objet "clip", etc. Au cours de la dominante Inf/T2, une équipe d'élèves a développé un objet "cinéma" permettant de mapper un film vidéo Mpeg1 directement sur une texture dans la 3D.

L'idée directrice de ce projet consiste dans une première phase à mapper sur les textures d'origine d'une scène des fenêtres quelconques présentent sur l'écran, par exemple une fenêtre netscape dans une texture d'un objet "web", ainsi la navigation dans netscape sera reproduite dans cette texture de la 3D en temps réel. Même chose pour les dessins dans un tableau blanc réel qui se repoduiraient dans la texture de l'objet "board" de la 3D.

Pour sélectionner ces fenêtres extérieures on utilisera l'identitificateur de fenêtre sous X11, le "window id". Il faudra récupérer les informations de cette fenêtre (width, heigth, depth et son pixmap), puis transformer ce pixmap X11 en une texture OpenGL, travail qui a été déjà réalisé dans l'object "cinema" et à partir duquel on devra s'inspirer.

Un seconde phase pourrait être envisagée qui consisterait de piloter à partir de la nouvelle texture immergée l'application extérieure, par exemple en cliquant sur un bouton ou un lien dans une texture netscape 3D pour déclencher l'événement adequat dans le netscape extérieur et par conséquent re-mapper le résutat dans la texture de la 3D. Ceci nécessite de trouver où pointe le curseur X11 dans la 3D, ce qui n'est pas évident à l'heure où ce texte est rédigé.

Ce projet nécessite de rentrer dans les sources de VREng qui est écrit en C et C++.

VREng est utilisable sur les stations SUN de l'école avec la commande 'vreng'. Il est décrit à l'url http://vreng.enst.fr/.