Dans le cadre d’un projet réalisé pendant mon BUT Informatique, l’objectif était de concevoir un démonstrateur pédagogique interactif en utilisant OpenGL. Ce projet vise à illustrer de manière claire et interactive les concepts abordés au cours, en mettant un accent particulier sur la géométrie, l’illumination, et les fonctionnalités avancées.
En plus de la mise en œuvre technique, un soin particulier a été apporté à l’interface utilisateur pour permettre l’exploration et la modification des paramètres en temps réel. Cela a été réalisé grâce à l’intégration de la bibliothèque ImGui, permettant une manipulation intuitive et efficace.
Un logiciel OpenGL pur : Pas de moteur, uniquement OpenGL
Le projet ne repose sur aucun moteur 3D comme Unity ou Unreal Engine. Au lieu de cela, il utilise directement les fonctionnalités d’OpenGL pour effectuer le rendu des objets et gérer les interactions graphiques. Cela permet une compréhension plus fine des processus qui interviennent dans le rendu des scènes 3D, comme la gestion des buffers, des shaders et de la géométrie.
Une immersion dans la géométrie et la lumière
La première étape a consisté à explorer la géométrie, la base même de toute construction 3D. J’ai implémenté un système permettant de charger des modèles au format OBJ. Ce choix a été délibéré, car il m’a permis de comprendre plus en profondeur le format et d’apprendre à gérer manuellement les sommets, les normales et les coordonnées de texture.

En parallèle, j’ai développé un générateur dynamique de formes géométriques classiques telles que des cubes, des sphères, des plans ou des cônes. Ces objets ne sont pas seulement des volumes statiques : ils servent de supports d’expérimentation pour les étapes suivantes, notamment l’illumination et les shaders.

Pour l’illumination, j’ai intégré trois modèles fondamentaux : Phong, Blinn-Phong et Gaussian. Ces approches, bien qu’elles reposent sur des principes similaires, produisent des effets visuels différents. Grâce à l’interface utilisateur que j’ai développée, il est possible de passer d’un modèle à l’autre et de comparer en temps réel leurs impacts sur les objets.



Une interface au service de la pédagogie
Un autre point central du projet a été la création d’une interface utilisateur fluide et intuitive, grâce à la bibliothèque ImGui. Chaque paramètre – qu’il s’agisse des shaders, des couleurs, ou encore de la géométrie – est accessible en quelques clics.
L’interface permet, par exemple, d’afficher les normales des surfaces sous forme de flèches colorées, de superposer un wireframe au modèle ou encore de visualiser la bounding box d’un objet. Ces éléments, souvent invisibles dans des rendus classiques, prennent ici une importance particulière. Ils permettent à l’utilisateur de mieux comprendre le fonctionnement des calculs d’illumination et des transformations appliquées aux objets.

Conclusion : un outil polyvalent et éducatif
Ce projet dépasse le cadre d’un simple rendu 3D. Il s’agit d’un outil éducatif conçu pour apprendre et expérimenter. Que ce soit pour visualiser les différences entre les modèles d’illumination, comprendre l’impact des normales ou jouer avec les paramètres des shaders, l’application offre une immersion complète dans le monde de l’infographie.
En réalisant ce démonstrateur, j’ai pu approfondir mes connaissances en OpenGL tout en développant des compétences en interaction utilisateur et en pédagogie. Ce projet incarne ma capacité à relier des concepts techniques complexes à des interfaces accessibles et engageantes.
Si ce projet vous intrigue, je serais ravi de discuter des détails techniques ou de partager des extraits du code source.
Téléchargement zip (demande l’installation des dépendance OpenGL sur le poste)