Spectra (2024)
Spectra is a simple click-based game that renders a 3D graphics window developed using C++ and OpenGL to demonstrate graphic programming features such as vertex attributions, model loading, texture loading, shaders, light interaction with models, shadows, post-processing blur effect, light bloom, and instancing of models & light sources.
Goal of the project
With Spectra, my goal was to design and develop a simple click based application that renders a 3D graphic scene in Windows using OpenGL API. It showcases different sources of light and their interaction with model. Shadows are spawned using shadow maps technique
Why this project?
I worked on Spectra to have a 3D scene that shows light's interaction with a loaded model. I also wanted to practice graphic programming techniques by developing a custom engine. Some of the features of this project are model instancing, light sources, ambient light, shadow mapping with Percentage Closer Filtering (PCF) as anti-aliasing render, face culling, and texture loading.
What were the problems faced during the development of this project?
During the early phase of the project, I faced issues in loading textures correctly on an object. Learning OpenGL was a key component of the project's development, although it was largely time-consuming due to the need to grasp and retain new techniques and syntaxes.
How was the problem resolved?
On debugging using RenderDoc, I figured that my texture unit's index was overwritten with garbage that caused my Fragment Shader to render black object instead of the right color. Fixing the index overwrite resolved this issue
Future work
To add several light sources and render final shadow of an object with PCF.