Composante
École Nationale Supérieure d'Électrotechnique d'Électronique d'Informatique d'Hydraulique et des Télécommunications
Objectifs
À l'issue de ce cours, les étudiants devront être capables de :
* Comprendre le **pipeline graphique de base**, depuis la représentation géométrique jusqu'à la génération de l'image raster.
* Expliquer et implémenter des **algorithmes fondamentaux de rasterisation**, tels que le tracé de segments, le remplissage de polygones et l'interpolation d'attributs.
* Mettre en œuvre des techniques de **gestion de la visibilité et des surfaces cachées**, notamment le back-face culling et le tampon de profondeur (Z-buffer).
* Comprendre et utiliser les principaux **modèles d'illumination et de réflexion**, incluant les composantes ambiante, diffuse (Lambert) et spéculaire (Phong et Blinn-Phong).
* Comparer les différents **algorithmes de shading** (flat, Gouraud et Phong) et analyser leurs compromis en termes de qualité visuelle et de coût de calcul.
* Comprendre les principes du **placage de textures (texture mapping)**, y compris les coordonnées de texture, l'interpolation et la correction de perspective.
* Identifier des usages avancés des textures tels que le **mapping d'environnement**, le **bump/normal mapping** et le **displacement mapping**.
* Acquérir une compréhension conceptuelle du **ray tracing** et de sa capacité à modéliser ombres, réflexions et réfractions.
* Concevoir et implémenter un **rendu logiciel élémentaire** intégrant plusieurs étapes du pipeline graphique.
* Utiliser **OpenGL** pour mettre en œuvre des pipelines de rendu incluant transformations, projections, éclairage et différents modes de rendu.
* Développer des compétences pratiques d'analyse, de mise au point et de comparaison des techniques de rendu, tant du point de vue de la qualité visuelle que des performances.
Description
Ce cours propose une introduction aux principes fondamentaux et à la pratique de l'**informatique graphique (computer graphics)**, avec un accent particulier sur la compréhension du pipeline de rendu et de ses différentes étapes. Le cours combine une présentation théorique synthétique avec un important volet pratique en travaux dirigés et travaux pratiques.
La partie cours introduit les concepts essentiels de la synthèse d'images, notamment le pipeline graphique, la rasterisation, la gestion de la visibilité, les modèles d'illumination et de réflexion, les techniques de shading, le placage de textures, ainsi qu'une introduction au lancer de rayons (ray tracing).
La partie pratique est organisée en plusieurs séances de laboratoire. Dans un premier temps, les étudiants développent un **rendu logiciel minimal en Java**, en implémentant les principales étapes du pipeline graphique (tracé de segments, remplissage de polygones, suppression des surfaces cachées, illumination de base). Dans un second temps, les étudiants utilisent un **rendu classique basé sur OpenGL**, afin d'apprendre à gérer les transformations géométriques, les projections, l'éclairage et différentes techniques de rendu au sein d'une API graphique standard.
L'approche pédagogique vise à combiner une compréhension approfondie des fondements de l'informatique graphique avec une expérience pratique des outils et techniques de rendu couramment utilisés.
