In this assignment, I had the choice of creating a 3D game, tool, or tech demo to demonstrate my understanding of 3D graphics and programming principles. I decided to create a 3D Model Viewer, which could handle custom models and their textures using the text file provided.
A .txt file named "Model_Settings" must be located in the same directory as the .exe. The file path of the model should be first, followed by its texture. Please see the example below.
models/skeleton/skeleton.obj
models/skeleton/skeleton_diffuse.png
models/croc/croc.obj
models/croc/croc_diffuse.png
models/imp/imp.obj
models/imp/imp_diffuse.png
Three types of lighting were implemented (in order of appearance): diffuse, ambient and specular.
The top-left of the application displays the texture of the current model.
In case the custom models loaded were large, I implemented scaling buttons to increase and decrease the model.
The rotation button enables and disables the model rotation. If it is disabled, the model will face the camera.
The undo button resets the scale, and the lighting of the model back to their defaults.
To cycle through the loaded models and textures, use the arrows in the bottom left of the application to cycle through them.
To cycle through the lighting options, use the arrows in the bottom right of the application to cycle through them.