Advanced Real-Time Rendering Techniques

About the project

This was a solo project made for the course CS562 at Digipen, the goal of the project was to implement in C++ and GLSL several real-time rendering algorithms used in modern graphics engines

Course Final Project: Real-Time Water Rendering

For my final project, I choose to implement real time water rendering. I base my implementation in the paper Using Vertex Texture Displacement for Realistic Water Rendering by Yuri Kryachko and in the blog post by Wojciech Toman


Features implemented during the course

Deferred Shading pipeline

I implemented a deferred rendering pipeline that supports diffuse, specular and ambient colors as well as some post processing effects such as:

  • Bloom
  • Edge detection
  • Antialiasing



The tessellation project was implemented using Phong Tessellation. The tessellation is dependent on the distance to the camera (farther parts are less tessellated) and how much the normal of a vertex is facing to the camera (edges are more tessellated to improve the detail)


Ambient Occlusion

I implemented two different algorithms, Horizon Based Ambient Occlusion and Image Enhancement. Although the last one is not an ambient occlusion technique itself, it generates a similar effect