En deuxième année d'IMAC, pour terminer le cours de synthèse d'image et valider nos acquis, nous avons dû créer un visualiseur de scènes 3D en OpenGL. Le projet était à rendre au retour des vacances de Noël, ce qui donna naissance à notre adaptation de l'univers du film "The Nightmare Before Christmas" en petits dioramas 3D.

Notre objectif était de créer un petit moteur de rendu 3D en OpenGL utilisant Assimp, librairie d'import de modèles 3D dans divers format.

Jouer avec les shaders

Test de rendu pendant le développement du projetTest de rendu pendant le développement du projet

Ce projet a surtout été pour moi l'occasion de jouer avec les shaders. Il s'agit de morceau de code permettant de décrire à OpenGL comment faire le rendu des objets 3D qui composent une scène. Pour ce projet, j'ai travaillé sur le rendu des lumières par notre moteur.

Rendu des lumièresRendu des lumières dans notre moteur

J'ai essayé d'implémenter les shaders de lumière que j'avais pu rencontrer dans les logiciels de modélisation 3D pour les intégrer dans notre projet. Notre petit moteur est ainsi capable de gérer des lumières ambiantes, des spots ainsi que de petites point lights.

Afin de nous faciliter le travail, les scènes sont quant à elles décrites dans des fichiers Json qui définissent la place de chaque modèle dans la scène. Ce fichier précise aussi quelles lumières sont utilisées et tous leurs paramètres.

Un peu d'infograhie 3D

Modélisation des assets 3DCréation des assets 3D

En plus de mon travail sur les shaders, j'ai aussi réalisé tous les assets graphiques présents dans le projet. J'ai créé les différents modèles 3D sur Blender et les textures ont été dessinées par mes soins.


Liens: