OpenGL Renderer

Description

I am learning graphics programming as preparation for when I will be developing a fighting game engine.

The render currently supports importing of multiple 3D model formats. It also supports Gouraud and Phong shading, reflection and refraction, postprocessing, instanced rendering and shadow mapping.

Work
  • Basic GLSL shaders
  • OpenGL incorporation
Team

Programming

  • Akli Lounès Touati

By comparing depth values of our fragment transformed to light space with the value at the same coordinate in our shadow map, we can deduce if a fragment is lit or in shadow.

This is a post-processing effect created by rendering what is in our render buffer to a quad and applying a kernel fragment shader.

By using OpenGL's refract function we can bend our viewing vector with the normals of a surface and sample a pixel of the cube map to use as the color for our fragment.

By using OpenGL's reflect function we can reflect our viewing vector of the normals of a surface and sample a pixel of the cube map to use as the color for our fragment.

Demonstration of instanced rendering. Drawing a total of 100,001 meshes without any hiccups. This is possible because we are using a buffer object to store lots of model matrices. Using indexed rendering we can draw all these objects with one call, transforming points for multiple instances at ones

Using a stencil buffer I tried to recreate the effect you see when fighting Omega Zero in MegaMan Zero 3 in 3D.