M2 - Images

TP 1 - Pipeline graphique
Rendu direct et différé


installez le contenu de l'archive avance_tp1.tar.gz pour gagner du temps.

dezippez le contenu de l'archive dans le répertoire de base de gKit2, et editez la section project_files de premake4.lua pour ajouter tuto_forward et tuto_deferred :

local project_files = {
    "tuto_forward",
    "tuto_deferred",
    "tutorial1",
    "tutorial2",
...
}
regenerez ensuite les projets pour votre environnement de travail : premake4 gmake ou premake4 vs2012, par exemple.




Partie 1 : rendu direct.

complétez le shader shaders/forward.glsl (inclus dans l'archive) pour calculer l'eclairement direct de chaque point du aux 100 sources presentes dans la scene.

testez le  shader avec l'application tuto_forward.




Partie 2 : rendu differe.

complétez le le shader shaders/deferred.glsl (inclus dans l'archive) et testez le resultat avec  tuto_deferred.
vérifiez que vous arrivez à reproduire le même résultat que pour la première version (rendu direct).

quel gain observez vous ?

Partie bonus : matieres / textures.

Que faut-il modifier pour utiliser une / plusieurs textures par objet ?
De même, que faut-il modifier pour utiliser une matière réflechissante (cf modèle de Blinn-Phong, par exemple)


Quelles limitations cette "modification" entraine-t-elle ? proposez une solution différente pour limiter le problème.

Partie bonus : eliminer les calculs inutiles.

Les sources ont une influence spatiale assez petite, du coup la plupart des contributions calculees dans les parties 1 et 2 sont nulles.
Comment eliminer les sources qui ne peuvent pas contribuer a un pixel ou a un groupe de pixels.

Quelle est la complexite de cet version de l'algorithme, quels gains peut on esperer observer ?