Projet d'OpenGL
Un billard en 3D



(Encadré par Michel Buffa et Frédéric Devernay)


Sommaire
  1. Description de notre projet
  2. Les fonctionnalités
  3. Mode d'emploi
  4. Les sources

1- Description de notre projet

            Nous avons choisi de modéliser un billard en 3D, grâce à la librairie OpenGL. Pour ce faire, nous sommes partis d'un modèle existant, comprenant les modules de calcul des trajectoires et de la gestion des collisions entre les boules.

            Dans un premier temps, nous avons opté pour une conception séparant l'aspect visuel de l'aspect fonctionel. Ceci afin d'avoir un code propre, hièrarchisé, facilement modifiable et réutilisable. Cependant, le manque de temps nous a obligé à changer de méthodologie et de faire un code plus linéaire. Les deux sources sont disponibles.
            Un point fort de la première méthode, vers laquelle nous nous orientions, et qui nous motivaient énormément, était de réaliser un billard indépendant l'implémentation visuel. Ainsi, notre billard actuel est codé grâce à OpenGL, mais il aurait été très facile de changer pour une version en X11. Il aurait suffit de remplacer la fonction convertGL associée à la classe Objet, par une fonction convertX11, appelant du code X11, et d'implémenter une fonction convert pour chaque type d'objet, héritant de cette classe.

            La première partie de notre projet a donc consisté à réaliser le modèle objet, ainsi qu'à implémenter les modules de calcul. La seconde partie de notre travail a consisté à appliquer à  la scène des effets particuliers (textures, éclairages, mouvements). C'est ce que nous allons détailler dans la partie suivante.


Vue du billard3D, sans ajout du décors, ni des textures.


2- Les fonctionnalités développées

            2.1- L'utilisation du billard

                Celle-ci est très simple, car une courte démo a été réalisée. Il suffit de l'activer pour voir les trois boules bouger.

            2.2- Les effets d'OpenGL

                Les effets utilisant OpenGL qui ont été ajouté au billard sont les changements de caractéristiques de la lumière, de type d'éclairage, les effets sur les objets.

                                Possibilité d'activer /désactiver la lumière ambiante.                                 Il y a trois spot light placées en ligne au dessus du billard. Il est possible de les éclairer ou de les éteindre séparemment.

3- Mode d'emploi de l'application

            3.1- Lancement

                    Pour utiliser le billard, il suffit de lancer l'exécutable (fournit ci-dessous). La scène apparaît, vue du dessus. A ce stade, vous pouvez alors manipuler la scène.

            3.2- Manipulation à la souris

                    Avec le bouton gauche de la souris enfoncé, il est possible d'effectuer des rotations sur la scène.
                    Avec le bouton de milieu de la souris enfoncé (dans le cas où la souris en possède un), il est possible de réaliser des translations sur la scène.
                    Avec le bouton droit de la souris enfoncé, le menu présentant les fonctionnalités disponibles, est activé.

            3.3- Les touches du clavier

                    Les touches directionnelles du clavier permettent de réaliser des rotations sur la scène.
                    La touche F1, permet d'utiliser le bouton gauche de la souris pour faire des translations, au lieu de rotations, dans le cas où un troisième bouton sur la souris ne serait prévu.
                    La touche "Escape" permet de quitter l'application.
 

4- Les sources du billard3D

            Vous pouvez soit avoir accès à l'archive de l'exécutable (compilé sur PC, à l'aide de Microsoft Developer Studio), soit avoir accès aux archives des sources qui ont généré l'exécutable, soit à l'archive des sources réalisées à l'aide de l'approche objet. Vous pouvez également télécharger tout le site.
            Nous tenons également à préciser que l'implémentation réalisée l'a été dans le but d'être réutilisé par la suite dans une application plus complète et plus poussée.


Johann Liberman
Alexandre Guyennon
ESSI 3 - VIMM
Le 29 mars 1999