ce projet est à faire en binome, à rendre sur Tomuss, accompagné
d'un petit rapport expliquant ce que vous avez fait et
éventuellement ce qui ne fonctionne pas / ce que vous auriez
voulu faire.
Partie 1 : travail à rendre
au strict minimum : une fonction d'intersection rayon / plan,
ainsi que intersection rayon / sphere + le parcours des pixels
de l'image ainsi que la génération du rayon de chaque pixel, ie
le minimum pour créer une image de ce type :
lorsque ces fonctions sont correctes, il suffit de les utiliser
pour calculer les ombres et ajouter une ou plusieurs sources de
lumière pour obtenir quelquechose qui ressemble à cette image :
normalement, tout le monde à réalisé l'équivalent pendant les
séances de tp.
Vous rendrez également le calcul de la couleur réfléchie et la
scène sera composée au moins de 2 objets, sphère ou autre, en
plus du plan "support".
Partie 2 : Bonus (minimum 2, au choix)
bonus 1 :
et avec un flou de profondeur ?
bonus 2 :
et avec un ciel et un soleil ? (utilisez des directions
aléatoires pour le ciel, le temps de calcul sera plus
raisonnable...)
bonus 3 :
et si le ciel change de couleur en fonction de la direction ?
bonus 4 :
et avec une lune ? cf tp3.
bonus 5 :
et avec des matières réfléchissantes ? cf le supplément du cours
sur les matières.
bonus 6 :
et avec beaucoup d'objets ? cf le supplément du cours sur le tri des
objets.
bonus 7 :
et avec un objet modélisé dans Blender et composé de triangles ?
cf le supplément de cours sur les
triangles.
bonus 8 : et avec opencv ?
lorsque l'on utilise des points ou des directions aléatoires
pour calculer la lumière réfléchie par un objet, l'image est
plus ou moins bruitée / avec des défauts... peut on filtrer
l'image avec un filtre gaussien opencv pour la "nettoyer" ?
comment régler les paramètres du filtre ? est ce que les
paramètres du filtre dépendent du nombre de points / de
directions aléatoires utilisés pour faire le calcul ?
cf la
doc
opencv, section "gaussian blurring"
bonus 9 : et avec un filtre bilateral ?
mêmes questions pour un filtre bilateral. quelles sont les
différences avec un filtre gaussien "classique" ? est ce
intérressant dans ce cas (ie pour éliminer les défauts de
calculs / d'estimation de la lumière réfléchie) ?
quelles informations supplémentaires peut-on fournir au filtre
pour préserver certains détails dans l'image ? les contours des
objets, par exemple ? comment les calculer en même temps que les
pixels de l'image ?
cf la
doc
opencv, section "bilateral filtering"
bonus 10 : une surprise ?
si vous avez expérimenté autre chose, surprenez nous !