2011-01-17 Ajout de screenshots pour le sujet sur le parallax mapping
2011-01-10 Bug dans la classe tranform : en TP je vous ai fait corriger un bug dans la classe transform. Cette correction n'est pas juste, voici (enfin j'espere) une version correcte :
Matrix4 getMatrix (void) const { Matrix4 mat (Matrix4::IDENTITY); Matrix3 rotMat; mOrientation.ToRotationMatrix (rotMat); mat = rotMat; mat[0][0] *= mScale.x; mat[1][0] *= mScale.x; mat[2][0] *= mScale.x; mat[0][1] *= mScale.y; mat[1][1] *= mScale.y; mat[2][1] *= mScale.y; mat[0][2] *= mScale.z; mat[1][2] *= mScale.z; mat[2][2] *= mScale.z; mat.setTrans (mPosition); return mat; } Matrix4 getInverseMatrix (void) const { return getMatrix().inverse(); }
2010-01-10 petite modif dans le sujet des normals map pour l'équation d'un point du triangle.
Dans skybox.cpp, pour avoir la skybox inversé dans le miroire ...
void SkyBox::render (bool activateMaterial) { //... Vector3 scale = sceneToView.getScale(); glScalef (scale.x*10., scale.y*10., scale.z*10.); //... }haut
Le but de ces travaux pratiques est de se familiariser avec les techniques
fondamentales pour le rendu temps réel en synthèse d'images. Ces TPs sont réalisé en
C++ et OpenGL mais les concepts qui seront abordés sont reproductibles dans
tout autre langage ou API graphique
Il est fortement recommandé de se munir de son cours pour effectuer les
travaux demandés.
Il est vivement conseillé aux étudiants de
travailler leurs TPs 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ées.
L'évaluation des travaux pratiques se fera à partir d'un contrôle continu pendant les séances. Le code produit jusqu'au début du TP4 sera remis pour être évalué sur les trois premiers TPs. Il sera de même au début du TP7 pour les TPs 4 à 6, et à la fin du TP10 pour les TPs 7 à 10. À chaque remise intermédiaire, un corrigé sera donné afin que les étudiants puissent se concentrer sur les nouveaux sujets, et ne soient pas trop pénalisés par une difficulté rencontrée dès le départ. séance.
Nous vous fournissons une trame de départ pour commencer vos TPs. Cette structure est composée d'un ensemble de classes C++ dont certaines sont vides et devront être remplies pour réaliser les TPs. Cet ensemble est compilable à l'aide d'un projet qmake. Ce dernier peut être utilisé dans l'environnement de développement kdevelop disponible sous Linux/KDE. ATTENTION, la version de QT utilisée pour ce projet est la 4.x. Veuillez vous assurer de disposer de cette version pour pouvoir compiler et executer le programme
Afin d'installer les composants logiciels de départ, suivez les instructions suivantes :
/**************************************************/
/* beginning of code to be completed (TPn) */
/* method --- description of what the method does */
/**************************************************/
et
/**************************************************/
/* end of code to be completed (TPn) */
/* method */
/**************************************************/
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 (pas les méthodes, mais ses fonctionnalités). Une fois que vous aurez pris en main votre environnement logiciel, les tâches à réaliser dans ces TPs sont les suivantes (cette liste sera complétée au fur et à mesure, il y a 10 sujets au total pour le rendu temps réel, deux sujet en modélisation géométrique) :