ECTS
3 crédits
Composante
UFR Sciences et Montagne
Description
Dans ce cours, nous présentons les bases de l'informatique graphique 3D : perception, modélisation de formes 3D, couleurs, lumières et textures, scène graphique, méthodes d’illumination, algorithmes de rendu (rapides ou réalistes). Les architectures matérielles et leur programmation via les shaders sont aussi présentés.
Objectifs
Connaître les principaux domaines de l’informatique graphique. Savoir utiliser la géométrie dans l’espace pour mettre en oeuvre des algorithmes pour manipuler des formes géométriques (représentation, collisions, mouvements, rendu). Connaître les principaux modèles géométriques, et leurs avantages respectifs. Comprendre les processus de formation des couleurs (lien couleur de l’objet, géométrie, lumières, ombres) et savoir les calculer dans un algorithme de rendu. Savoir mettre en place une scène graphique sous forme de hiérarchie d’objets 3D et de transformations.
Heures d'enseignement
- CMCours Magistral9h
- TDTravaux Dirigés9h
- TPTravaux Pratiques9h
Pré-requis obligatoires
Avoir des bases solides dans le langage C++ ainsi que des notions mathématiques classiques en géométrie (points, vecteurs, distance) ou algèbre linéaire (calcul matriciel).
Plan du cours
-
CM : Après une rapide présentation des images, de la couleur, de la perception, et des différentes formes d'imagerie 3D, les étapes du processus de formation d'une image à partir d’une scène 3D sont décrits. Nous présentons les aspects géométriques de ce processus, ce qui nous amène aux définitions et propriétés essentielles de la géométrie des espaces 3D (points, vecteurs, normes, produits scalaires et vectorielles). Nous abordons ensuite les représentations des formes implicites et explicites, d'abord sur les formes mathématiques usuelles (plan, demi-espace, sphère, droites, rayons, triangles, tétraèdres, etc) puis ensuite leur assemblage au travers de surfaces triangulées ou quadrangulées. La modélisation géométrique est ensuite abordée (arbres CSG, surfaces, représentations bord comme les structures demi-arêtes). Le calcul de la couleur en fonction des propriétés des matériaux et des sources de lumière est lui aussi présenté. Les transformations dans l'espace (translation, rotation, perspectives) sont décrites rapidement. Enfin, divers algorithmes de rendu sont étudiés.
- TDs: Les TDs servent à acquérir l'aisance nécessaire pour faire de la géométrie dans l’espace et la traduire sous forme d'algorithme et de code directement utilisable. Le TP principal portant sur la mise au point d'un rendu par lancer de rayon, on donne en TD toutes les recettes et calculs pour trouver comme des rayons touchent des objets dans les scènes, comment ils rebondissent ou se réfractent. L'importance du vecteur normal est souligné. D’autres exercices portent sur les modèles géométriques, ou le processus de calcul des couleurs en fonction des lumières
- TPs: Trois TP illustrent les principaux aspects de l’informatique graphique 3D. Les deux premiers TP sont réalisés en C++, avec les bibliothèques Qt et QGLViewer, qui permettent de simplifier la visualisation et l'interaction avec les scènes 3D. Le premier TP, orienté modélisation géométrique, porte sur la compression de soupes de triangles par un algorithme out-of-core. Il permet essentiellement de prendre en main la bibliothèque QGLViewer, se remettre dans le bain du C++, et de comprendre les structures de données géométriques simples, et l’intérêt et les limites de la compression. Le deuxième TP, plus important, permet à l'étudiant de développer un algorithme complet de rendu réaliste par lancer de rayons. Tout un squelette QGLViewer est fourni, ce qui permet à l'étudiant de se focaliser sur le rendu, et d'avoir tout de suite une interface pour tester les rendus de scènes 3D. Le dernier TP apporte une vision haut-niveau de l’informatique graphique, en proposant à l’étudiant de développer une application graphique dans un navigateur, via WebGL et la bibliothèque JavaScript Three. L’étudiant met en place une scène géométrique, avec des objets graphiques. Il les met en mouvement, les texture, calcule les ombres, etc.