PBR Renderer

This was the first project of my second year at AIE, To complete the assessment I had to create a basic OpenGL Renderer that could load in a model and have a moving light but I got carried away.

Key-Systems/Mechanics:

  • Model Loading

  • Shader Programming

  • OpenGL

  • GLFW

  • GLEW

  • IMGUI

  • PBR Lighting

  • Texture Manager

  • Model Manager

  • GameObject Manager

  • Hierarchy System

  • Material Manager

  • Inspector

  • Profiler

This was my third OpenGL renderer as I had attempted 2 the year before to get a heads up for the second year assessment.

This is still a work in progress engine as I am currently working on implementing shadow mapping.

This project was easily one of my favorite projects as I never ran out of new things to add or improve and it helped me to further understand how C++ works as a whole and to be able to manage a large codebase that contains 20+ different scripts that are all working together to achieve what is known as a physically-based renderer that can renderer close to real lighting in realtime by using multiple textures per material.

I am using IMGUI which is a library used to create a GUI for the user to edit the scene during runtime this includes creating new materials, creating new objects, creating new light, and even editing all objects and materials.

I worked weeks on this project at the start but have been preoccupied as of recently but I would have easily spent 4+ months straight programming this engine as graphics programming is really intriguing to me and I would love to make more engines in other APIs such as DirectX12 and Vulkan.