Ce cours présentera des notions d'informatique graphique, et principalement celles liées au rendu réaliste d'images 3D. Il introduit notamment des notions de raytracing/pathtracing et simulation de l'éclairage (équation du rendu), de textures et représentation des matériaux, de représentations de la géométrie 3D, de modèles de caméra, de simulation et intégration de Monte Carlo et échantillonnage par importance, de structures accélératrices, de paramétrisation de surface et de perception. Lors de ce cours, vous développerez entièrement en C++ un moteur de rendu d'images réaliste (noté) basé sur une simulation de Monte Carlo que vous améliorerez au fil des séances.
Vous débuterez le cours avec un code quasi vierge. Au fil des explications, vous ajouterez d'abord de quoi effectuer des rendus de simples sphères diffuses avec des lumières ponctuelles et de l'éclairage direct. Vous ajouterez de la correct gamma, de l'anti-aliasing, et la gestion de sphères réfléchissantes et transparentes. Viendra ensuite un cours sur la simulation de Monte Carlo et l'équation du rendu, qui vous permettra d'ajouter de l'éclairage indirect, des sources lumineuses étendues afin d'obtenir des ombres douces, ainsi que du flou de profondeur de champs. Vous ajouterez enfin la gestion de formes 3D plus complexes à travers les maillages texturés.