This course will present notions of computer graphics, and mainly those related to the realistic rendering of 3D images. It notably introduces notions of raytracing/pathtracing and lighting simulation (the rendering equation), textures and representation of materials, representations of 3D geometry, camera models, Monte Carlo simulation and integration, and importance sampling, acceleration structures, surface parametrization and perception. During this course, you will entirely develop in C ++ a realistic image rendering engine (graded) based on a Monte Carlo simulation that you will improve over the course of the lectures.
You will start the course with an almost empty code. Over the course of the explanations, you will first add the possibility to render simple diffuse spheres with point lights and direct lighting. You will add gamma correction, anti-aliasing, and the handling of reflective and transparent spheres. After a lecture on Monte Carlo Simulation and the Rendering Equation, you will add indirect lighting, extended light sources to achieve soft shadows, as well as depth of field blur. Finally, you will add support for more complex 3D shapes through textured meshes.