Instructor: Jorge Usabiaga
Type: Solo project
Languages: C++ & GLSL
The objective of this course was to understand modern rendering algorithms used in real time applications to render more accurate images as efficiently as possible. During the course of the semester I implemented multiple of these algorithms as well as my final project: Volumetric Shadows and Crepuscular Rays.
Final project – Crepuscular Rays
In this video you can see the implementation I did of god rays as my final project for this subject. I followed this paper for my implementation.
Work during the semester
Deferred Rendering Pipeline
In this video you can see the implementation of a deferred rendering pipeline that supports diffuse, ambient and specular colors.
I decided to implement Bloom as one of the post processing effects.
Sobel Edge Detection
I implemented the Sobel Edge detection algorithm in the GPU. The implementation supports different ways to detect the edges: color, normals and depth.
I implemented Phong Tessellation to be able to generate more detailed models from low poly meshes on the fly. The parameters that determine how much to tessellate an object are the distance to the camera and where the normal of the face is pointing (i.e. faces that are near edges will be tessellated more in order to give more detail in these areas).
This is one of the algorithms that improves the most the render quality of the scene. I used this webpage as reference for my implementation.
I implemented three different algorithms for this project, Screen Space Ambient Occlusion (SSAO), Horizon Based Ambient Occlusion (HBAO) and an Image Enhancement, which is not an AO algorithm by itself but the effect it generates is similar.