Please ensure you restore packages through NuGet beforee attempting to run the code through VS!
-
Windows 11
-
Visual Studio 2022
-
C++ 17
My first step when working with this project was to transform the rendering code into OOP. This enabled me to more easily load in, render and configure individual assets. It also resulted in a far more elegant looking code.
On startup the code loads in the assets, on first load assets are dumped out in a more efficiently loadable format. From here the assets data is loaded into the suitable gl objects and then the main loop starts for rendering the scene on repeat.
Inputs are processed in a way such that there is a known time passed from last run. This allows movement steps to be time related.
Textures are loaded into a stack like array where the bottom most texture has the following ones placed on top.
Lights follow a similar array structure, but their results are summed as opposed to overlayed.
Main pieces of code can all be found from scenebasic_uniform.cpp. This file manages all aspects of the scene. The functions within here will give a good guide for exploring the spin-off procedures and their workings.
Historical shaders are provided in /shaders and give a look into the development process.
The asset loading code is mainly located withing Asset.cpp and attempts to parse suitable .obj files into memory. In here code related to the loading and exporting of dumps is located.
The dump system takes the data arrays constructed from the parsing of .obj files and puts them into formatted files. Such that the mesh data can be read in a far more rapid time. From tests it has taken loading times from 20~ seconds to <2 seconds, a significant improvement!
I believe I have acheived the 50-60 range. As i have satisified the majority of elements in this band, excluding the Skybox which I did not tackle. I do satisfy parts of 60-70 (>1 model & light) however I believe this is only enough to strengthen my mark not push me up a band.
I believe I have acheived the 50-60 range. I have satisified this band, implementing disintergration, render to texture, edge detection and gaussian blur.