Rechercher

[ABI02] VRML97 sous Java-OpenGL

Mémoire d'ingénieur : Soutenue le: 01 January 2002, : VRML97 sous Java-OpenGL,

Auteurs: J. Abisror

motcle:
Résumé: CÂ’est en mai 1995 que la première version officielle du VRML fut définie, celle-ci ne permettait que la description de scènes immuables, sans possibilité dÂ’animation. VRML 1.0 dérivait du langage graphique Open Inventor de Silicon Graphics permettant de réaliser des descriptions complètes de scènes 3D incluant la géométrie, les éclairages, les textures. Durant le SIGGRAPH 96 qui se déroulait à la Nouvelle Orleans, le VRML Architecture Group (V.A.G.) présenta les spécifications officielles de VRML 2.0 et créa le VRML Consortium (VRMLC). L’élaboration formelle de VRML 2.0 pour devenir un standard international avait débuté en juin 1996 avec les spécifications préliminaires du Consortium pour le VRML 2.0.
La nouvelle version de VRML devait permettre des interactions avec des documents HTML, des scripts Java et inclure des comportements permettant des animations d’objets. En avril 1997, ces nouvelles spécifications furent l’objet d’une soumission à l’ISO sous le nom de VRML97. C’est finalement en décembre 97 que VRML97 fut approuvé par l’ISO.

Alors que HTML est un langage permettant de représenter des documents hypertextes en 2D, VRML permet de modéliser ces informations en 3D.
En VRML, une scène 3D est constituée par un ensemble d’objets appelés nœuds ayant comme particularité de respecter une hiérarchie dont l’abstraction est un graphe sans cycle, encore appelé graphe de scène. VRML n’est pas un langage de programmation mais un langage descriptif : l’implémentation des différents nœuds n’est pas à la charge de l’utilisateur mais d’un navigateur spécifique.

Le rendu de la scène est assuré ici par OpenGL, une bibliothèque graphique très évoluée et totalement portable offrant de nombreuses ressources aux programmeurs qui souhaitent élaborer un moteur 3D. Elle reçoit des ordres de tracé de primitives graphiques (facettes,etc.) directement en 3D, une position de caméra, des lumières, etc. Ensuite, OpenGL prend en charge les changements de repère, la projection en perspective à l’écran, l’élimination des parties cachées, l’interpolation des couleurs, le tracé ligne à ligne des faces pour en faire des pixels. OpenGL est conçue comme une interface rationnelle, indépendante du matériel, qu’il est possible d’implémenter sur de nombreuses plate-formes matérielles différentes. OpenGL ne propose pas de commandes de haut niveau permettant de décrire des modèles d’objets tridimensionnels. Il faut construire le modèle à partir d’un jeu restreint de formes géométriques primitives : des points, des lignes et des polygones.

L’objet de ce mémoire a été, à partir d’un logiciel capable de gérer la hiérarchie des nœuds VRML 2.0 en java, appelé CyberVRML97, et d’un logiciel permettant l’utilisation des fonctions OpenGL en Java au travers de bindings Java-OpenGL, appelé GL4Java, d’écrire une interface Java (non exhaustive) entre VRML et OpenGL, permettant d’obtenir un navigateur VRML écrit entièrement en Java. Pour réaliser cela, il a fallu traduire la sémantique des nœuds VRML en utilisant des fonctions OpenGL adéquates. Par exemple, une boite 3D décrite par un nœud VRML Box très simple traduit dans sa sémantique la présence des six faces d’un cube. Dans la syntaxe d’OpenGL, il conviendra dans ce cas précis de décrire ces six faces à l’aide de polygones et de préciser l’orientation de la lumière pour que toutes les faces de la figure soient potentiellement visibles. Un module d’animation capable de prendre en charge les scènes animées a été développé. Une animation pouvant être déclenchée par un clic de souris, il a été nécessaire d’implanter les objets de type Sensor de VRML97, sortes de capteurs, en utilisant le mécanisme de sélection d’OpenGL, qui permet de contrôler la sélection d’un objet 3D à l’aide du pointeur de la souris.


Commentaires: (PDF disponible)

BibTeX

@masterthesis {
ABI02,
title="{VRML97 sous Java-OpenGL}",
author="J. Abisror",
year=2002,
address="{CEDRIC Laboratory, Paris, France}",
note="{(PDF disponible)}",
}