L3 synthèse d'images
2023


Projet - lancer de rayons et images


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 complèterez ce travail avec le calcul de la lumière réfléchie, cf TP1 / Partie 4 / Matière diffuse. pour plusieurs sources de lumière.


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 ?


bonus 5 :
et avec des matières réfléchissantes ?


bonus 6 :
et beaucoup d'objets ?


bonus 5 : 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 6 : et avec un filtre bilateral ?
mêmes questions pour un filtre bilateral.
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 7 : une surprise ?
si vous avez expérimenté autre chose, surprenez nous !