Real-time 3D Graphics A course about modern real-time render engines.

Description

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.

Requirements

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.

Material

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

Content

Introduction

Recap of previous required knowledge

The GPU

Understanding the basics of how a GPU works, and what can it do.

The Framework

A walkthrough over the C++/OpenGL codebase used along the course.

Illumination

Basic of Phong equation, types of light (point, spot, directional) and attenuation.

Shadows

Shadow techniques, how to generate shadowmaps, optimizations.

First Assignment

In the first assigment you must add illumination and shadows to the framework.

Render Pipelines

Optimizing the rendering pipeline for more complex environments. Programming a deferred rendering pipeline.

Physicaly Based Materials

Understanding the PBR Model, coding the equation and how to improve materials.

HDR and Linear Space

High-dynamic range images for better quality and using Linear Color Space to improve fidelity.

Ambient Occlusion

Basic implementation of Amblient Occlusion to give better depth to scenes.

Second Assignment

Here we will optimize our render pipeline with Deferred Rendering and improve the visual quality with PBR and SSAO.

Irradiance

Approaches for bounced light.

Reflections

Adding reflections to the scene, from precomputed to realtime.

Volumetric Rendering

How to render volumetric elements like fog.

Decals

Improving the scene with decals to give detail to surfaces.

Post-processing

Understanding a post-processing stack to enhance the visual quality.

Beyond the course

Final recap and some guides of how to move forward after this course.

Final Assignment

Here we will add Reflections, Irradiance, Volumetric lights and PostFX.


Extra content

WebGPU

Presentation about the modern WebGPU rendering API.

Optimizing rendering

Discuss more about how to render the same frame in much less time (Occlusion culling, GPU Driven rendering, etc).