Bureau d'étude Synthèse d'images

Rendu du rapport le 31/01/2011 avant 16h au plus tard

Par mail à votre enseignant de TP. Un fichier rapport en pdf et votre code dans une archive (.zip ou .tar.gz).

Les fichiers doivent être nommés par vos nom de famille. Exemple pajot_vanderhaeghe.pdf et pajot_vanderhaeghe.tar.gz (se decompresse dans le repertoire ./pajot_vanderhaeghe/).

Le tout doit faire moins de 8Mo, si vos fichiers sont trop lourds, placez les en téléchargement et envoyez nous le lien.

Objectif

Le but de ce bureau d'étude est de se familiariser avec les techniques avancées de modélisation géométrique et de rendu en synthèse d'images. 

Il est fortement recommandé de se munir de son cours pour effectuer ces travaux pratiques. 

Compte tenu du faible nombre d'heures allouées pour ce TP, il est conseillé aux étudiants de travailler leur BE en dehors des séances encadrées afin d'avancer le plus possible et de profiter de l'encadrement pour se faire expliquer les difficultés qu'ils ont rencontrés.

haut

Évaluation du BE

L'évaluation du BE se fera à partir de deux controles individuels du travail de l'étudiant :

  1. Lors d'une séance de validation qui aura lors de la dernière heure de TP. L'étudiant montrera les résultats qu'il est arrivé à obtenir au terme du BE.
  2. Par l'analyse d'un compte rendu de BE qui sera remis à l'enseignant en version imprimée ou manuscrite au plus tard deux semaine après la validation. Ce compte rendu comprendra les réponses aux questions posées dans les sujets des différents parties, ainsi qu'un récapitulatif mettant en évidence le travail effectué par l'étudiant.

Toute copie de code ou de rapport sera sanctionnée par un zéro aux groupes incriminés. Vous pouvez cependant chercher des ressources sur le net, dans ce cas, indiquez vos sources dans le code (vous ne pouvez pas partager votre code en le mettant sur le net).

haut

Installation des outils 

Nous vous fournissons une trame de départ pour commencer votre BE. Cette structure est composée d'un ensemble de classes C++ dont certaines sont vides et devront être remplies pour réaliser le BE. Cet ensemble compilable à l'aide d'un projet qmake. Ce dernier peut être utilisé dans l'environnement de développement kdevelop disponible sous Linux/KDE. 

Afin d'installer les composants logiciels de départ, suivez les instructions suivantes :

  1. Créez un répertoire qui sera votre répertoire de travail pour ce BE.
  2. Téléchargez dans ce répertoire le fichier be_synthese_M2.tgz 
  3. Vous pouvez la décompresser avec ark : bouton droit de la souris sur le nom du fichier et sélectionner "extract here".
  4. Si vous utilisez kdevelop, cliquez sur be_synthese.kdevelop pour ouvrir le projet. Vous pouvez ensuite compiler (F8) et exécuter (F9) le programme sous cet environnement de développement.
  5. Pour les inconditionnels de vim et de la ligne de commande, générez le makefile associé en tapant "qmake". Par la suite, il suffira d'utiliser la commande "make" pour compiler votre programme.
  6. Pour lancer l'éxécutable, utilisez la commande : "./be_synthese"
  7. Vous pouvez générer la documentation de référence du logiciel avec la commande "cd doc ; doxygen ; cd ..". Elle sera alors accessible avec la commande "konqueror doc/html/index.html&"
    La todo list de cette documentation récapitule les différentes taches à réaliser.
haut

Découverte des classes du programme

Dans premier temps, en vous aidant de la documentation, faites un diagramme de classes de manière à bien visualiser l'organisation des différentes classes du programme. Donnez aussi un bref descriptif de chaque classe. Vous vous limiterez à décrire les fonctionnalités des méthodes principales.

Documentation du code de base ici

  1. Quelle est la structure générale du programme ?
  2. Comment s'articulent les classes BeSynthese, Viewer et Scene ?
  3. Quel est le role de l'interface Entity ? Vis à vis de Scene, quel est l'intérêt de cette interface ?
  4. Comment s'organise le rendu des objets de la scène ?

Travail à réaliser

Une fois que vous aurez pris en main votre environnement logiciel, les taches à réaliser dans ce BE sont les suivantes :

  1. Rendu temps-réel : Ambianceur (shader) en GLSL, éclairage par pixel, application de textures (3). Voir le sujet
  2. Modélisation géométrique (2). Voir le sujet
haut