Projet Infographie n°1
1999-2000

WB01624_.gif (281 octets) RETOUR

Pages trouvées

 

Instructions liminaires

Le sujet est à traiter en binômes. La date limite de retour est le Vendredi 7 Avril à 18h.

La restitution est à effectuer par mail à l'adresse nicolas.janey@univ-fcomte.fr.

Vous voudrez bien me faire parvenir une seule archive winzip contenant les fichiers nécessaires (en particulier fichiers mini-langage, .cpp, .h et workspace) à l'exclusion de tout autre fichier (exécutable, pch,...). Ces fichiers seront stockés stockés dans un répertoire portant les noms des deux membres du binôme. Un readme.txt sera inclut avec l'archive décrivant le rôle des différents fichiers et les instructions particulières nécessaires.

Votre mail devra comporter en object les mots clef projet1 et IG ainsi que les noms des deux membres du binôme. Le nom du fichier zip sera composé des noms des deux membres du binôme.

Le Sujet

On considère le mini langage de description de scènes comportant les instructions suivantes (une par ligne de code):

Cube x y z Parallélépipède de cotés de dimension (x, y, z)
Sphere r Sphère de rayon r
Cylindre r h Cylindre de rayon r et de hauteur h
Cone r h Cône de rayon r et de hauteur h
Translation x y z Translation de vecteur (x, y, z)
Rotation a x y z Rotation d'angle a (en degrés) autour de l'axe passant par O de direction (x, y, z)
Zoom x y z Zoom de facteurs (x, y, z)
Push Empilement de l'environnement
Pop Dépilement de l'environnement
Material
  dr dv db
  ar av ab
  sr sv sb
  er ev eb
  ref
Définition des propriétés d'une surface. (dr, dv, db) réflexion diffusion, (ar, av, ab) réflexion ambiante, (sr, sv, sb) réflexion spéculaire, (er, ev, eb) émission, (ref) réflectivité
Pointlight
  x y z
  i
  r v b
Définition d'une lumière de type lumière ponctuelle de position (x, y, z), d'intensité i et de couleur (r, v, b)
Dirlight
  x y z
  i
  r v b
Définition d'une lumière de type lumière directionnelle de direction d'incidence (x, y, z), d'intensité i et de couleur (r, v, b)
Spotlight
  x y z
  dx dy dz
  i
  r v b
  o
Définition d'une lumière de type spot de position (x, y, z), de direction (dx, dy, dz), d'intensité i, de couleur (r, v, b) et d'ouverture o

Vous pouvez, si vous le souhaitez, ajouter d'autres fonctions au mini-langage (Camera, Texture, ...). Dans ce cas, vous préciserez dans le fichier Readme.txt la syntaxe utilisée.

Le projet consiste à écrire un programme C ou C++ à même d'exécuter les trois opérations suivantes :

  • traduction d'un fichier mini langage en son équivalent en VRML,
  • traduction d'un fichier mini langage en son équivalent en source OpenGL,
  • affichage d'un fichier mini langage dans une fenêtre OpenGL avec élimination des parties cachées et possibilité de zoomer et de faire tourner la scène sur elle-même.

Le sujet n'inclut pas la mise en œuvre d'un processus de détection des erreurs éventuelles présentes dans un fichier mini-langage.

Jeu d'essai

Votre programme devra être validé pour l'ensemble des fichiers suivants:

-> Le fichier .zip scenes.zip

Remarques

Le projet pourra être réalisé au moyen d'Auxiliary ou de GLUt. Il devra être compilable et exécutable en Visual C++ 4.0 ou 6.0 (Indication dans le readme.txt).

En cas d'utilisation de bibliothèques spécifiques (MFC, TK, ...), les aspects relatifs à la programmation "Infographique" seront clairement isolés du reste.

Exemple de réalisation

Le programme exécutable Projet19992000.exe. Trois options d'exécution : -ecran, -vrml et -opengl:

  • Projet19992000 -ecran fichier.scn
  • Projet19992000 -vrml fichier.scn fichier.wrl
  • Projet19992000 -opengl fichier.scn fichier.cpp

Le fichier Scene.h décrivant les deux fonctions créées lors de la génération d'un fichier source .cpp.

Un fichier GestionOpenGL.obj nécessaire à la compilation d'un source cpp obtenu à partir d'un source mini-langage.

Le fichier GestionOpenGL.h correspondant au .obj précédent.

Exemple de projet Visual C++ 6.0 utilisant scene.cpp généré à partir de scene.scn.

En cas de bug constaté, prière d'envoyer un mail de description à nicolas.janey@univ-fcomte.fr.