Game Engine - Level Renderer
This project I built a level renderer for a game engine using OpenGL and C++. This was built completely from scratch. What was really interesting about this project were the requirements. This was a very challenging project to work on given the short timeframe. I needed to create a custom file reader that supported all the data from a blender file which was exported to a custom format, parse that data into C++, write the OpenGL code to handle the buffers, shaders and textures and ensure that all features were implemented. It was an immense challenge and I really loved working on this project. This level renderer was implemented in less than 2 weeks.
The level renderer needed to:
Read in a blender .blend file and parse level geometry data like the name of the object, the matrix representing its position, rotation and scale.
Parse the binary model data for all referenced models using a custom file format and parser
Transfer model geometry, material and matrix to the GPU
Support a camera that could fly through the level
Support and render directional lighting
Recreate the level layout provided from blender in engine
Save memory by ensuring that multiple instances of the same model in a scene were only loaded into memory once
Support hotwaping level geometry without a restart allowing levels to be loaded dynamically at runtime