Portfolio de Master 2

Shadow mapping

Implémentation du shadowmapping sur shaders (GLSL) sans antialiasing

Une première passe de rendu m’a permis d’obtenir une « shadow map » de la scène pour chaque lumière. Ensuite, lors de la seconde passe, j’ai testé la visibilité du pixel par rapport aux différentes sources pour en déduire l’ombre.

Bloom

Rendu 3D d’une scène sans utilisation du bloom

Rendu 3D d’une scène avec utilisation du bloom sur shaders (GLSL)

Après une première passe de rendu, j’ai récupéré dans une texture l’image de la scène. J’ai ensuite effectué une convolution par un filtre gaussien pour mettre en avant les zones fortement illuminées.

Ray tracing

Rendu par lancer de rayons, gestion des réflexions/réfractions

Par lancer de rayon, je calcule les pixels les uns après les autres, en prenant en compte les propriétés des matériaux pour calculer les réflexions et réfractions.

Kd-Tree

Utilisation d’un Kd-Tree pour accélérer le lancer de rayons

Le lancer de rayon étant très gourmand en temps de calcul, j’ai ajouté une structure de partitionnement de l’espace, un Kd-tree, pour accélérer le processus. L’accélération augmente avec le nombre de primitives. Testé sur un seul ordinateur, j’ai eu une accélération d’environ 6 sur cette scène.

Maillage original de la Venus

Subdivision

Maillage de la Venus après 1 étape de subdivision

Maillage de la Venus après 3 étapes de subdivision

Implémentation du schéma de subdivision de Catmull-Clark. On peut voir que le maillage devient plus lisse, tout en gardant de bonnes propriétés topologiques (valences des sommets, maillage manifold).

Décimation

Maillage de la Venus après 1 étape de décimation

Maillage de la Venus après 3 étapes de décimation

A l’inverse de la subdivision, j’obtiens ici une simplification du maillage. Le choix des sommets et des faces à retirer se fait par calcul de l’erreur quadratique moyenne (MSE). Cela permet de ne pas supprimer les hautes fréquences importantes et ainsi de garder une géométrie proche du maillage initial.