In this course we would learn the basic of how modern realtime render engine's work.
Students start with a very basic render engine and build uppon it all the current techniques to improve the visual quality maintaining a good framerate.
Students must have prior knowledge to C/C++ programming, OpenGL and basic Computer Graphics algorithms (like 3D transformations, linear algebra, framebuffer, etc).
The Computer Graphics Course material can be found also in this website.
All the code can be found in its github repository.
The framework can be compiled in Visual Studio, GCC or XCode.
We use Blender as our main tool to export content to our engine.
Website to get assets: Sketchfab and Polyhaven.
There are recordings of the coding part of every class. You can find the video in the Youtube Playlist
Recap of previous required knowledge
Understanding the basics of how a GPU works, and what can it do.
A walkthrough over the C++/OpenGL codebase used along the course.
Basic of Phong equation, types of light (point, spot, directional) and attenuation.
Shadow techniques, how to generate shadowmaps, optimizations.
In the first assigment you must add illumination and shadows to the framework.
Optimizing the rendering pipeline for more complex environments. Programming a deferred rendering pipeline.
Understanding the PBR Model, coding the equation and how to improve materials.
High-dynamic range images for better quality and using Linear Color Space to improve fidelity.
Basic implementation of Amblient Occlusion to give better depth to scenes.
Here we will optimize our render pipeline with Deferred Rendering and improve the visual quality with PBR and SSAO.
Approaches for bounced light.
Adding reflections to the scene, from precomputed to realtime.
How to render volumetric elements like fog.
Improving the scene with decals to give detail to surfaces.
Understanding a post-processing stack to enhance the visual quality.
Final recap and some guides of how to move forward after this course.
Here we will add Reflections, Irradiance, Volumetric lights and PostFX.
Presentation about the modern WebGPU rendering API.
Discuss more about how to render the same frame in much less time (Occlusion culling, GPU Driven rendering, etc).