OpenGL Graphics
The following is a collection of solo projects that I worked on during my time as a student at Digipen related on how to use OpenGl and Vertex and Fragment Shaders to implemnt different graphic features on a game’s graphics pipeline.
These include:
Initial Object Renderer and Model Loader
Lighting (Phong Illumination Model)
Normal Mapping
Shadow Mapping
Reflection and Refraction
These projects were created on a simple C++ engine created by me using OpenGL as a base to render and using GLSL as the shader language.
OpenGL Renderer
This project consisted on creating the initial renderer, shaders and object generation and loading onto the scene for the following projects.
On this project I learned how to use OpenGL, and it also taught me the bascis to create the starting engine for my Space Partitioning projects.
Lighting
On this project I implemented lighting by applying the Phong illumination model on some shapes by implementing them in OpenGL on the Vertex and Fragment Shaders using GLSL.
This project includes the following types of lights:
Point lights
Spotlights
Directional Lights
These lights are calculating considering the objects’ diffuse color, specular color and the scene’s shininess and ambient coefficient.
Normal Mapping
This project consisted on learning how to utilize normal maps using the previously created Phong illumination model by using the object’s normals, tangents and bitangents of each vertices to interpolate the normals of each texel on the normal map to get the correct normal vector in the vertex space and illuminate the face of the object accordingly.
This technique is utilized to apply extra detail to objects in a game without adding more polygons to them, since the illumination gives the illusion of depth.
Shadow Mapping with PCF
On this project I implemented shadows onto the Phong illumination model by having a first render pass that only renders by depth from the light source’s point of view and then uses that data to determine which objects are in front and have to therefore project their shadow onto the ones behind.
Reflection & Refraction with Cube Mapping
This project addis both refraction and reflection to an object. The idea is to generate a cube map by rendering the objects that can be found in the scene and the skybox into it and then using said cubemap to render the object that would have the reflection/refraction properties.