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 :
- 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.
- 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 :
- Créez un répertoire qui sera votre
répertoire de travail pour ce BE.
- Téléchargez dans ce
répertoire le fichier be_synthese_M2.tgz
- Vous pouvez la
décompresser avec ark : bouton
droit de la souris sur le nom du fichier et sélectionner "extract
here".
- 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.
- 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.
- Pour lancer l'éxécutable, utilisez la commande : "./be_synthese"
- 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
- Quelle est la structure générale du
programme ?
- Comment s'articulent les classes BeSynthese, Viewer et
Scene ?
- Quel est le role de l'interface Entity ? Vis à vis de Scene, quel est l'intérêt de cette interface ?
- 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 :
- Rendu temps-réel : Ambianceur (shader) en GLSL,
éclairage par pixel, application de textures (3). Voir le sujet
- Modélisation géométrique
(2). Voir le sujet
haut