1.3 KiB
% TDT4230 - Final assignment log % Peder Berbebakken Sundt % 4'th of april 2019
\newpage
#!/usr/bin/env bash
printf "time for some intricate graphics surgery!\n" | cowsay -f surgery | head -n -1 | sed -e "s/^/ /"
the task
todo
Getting started
First I had to clean out all the cruft from the glowbox scene in the program. while at it, I removed a lot of the unneccesary code and made a lot of helpers which keeps track of VAO IDs buffer IDs. Now, these are generated and cached automatically causing me a lot less of hassle.
I then went though and added the ability to use multiple shaders. The each sceneNode can specify a shader.
If the shader is a nullptr
, then it is inherited from the parent.
When changing shader I had to make sure all the uniforms are passed properly. This was done through the use of a few helper structs and great miss-use of the c++ preprocessor to make all the uniforms named. Now the program simply uses the uniform name instead of hardcoding all the location numbers.
When support for multiple shaders was in place, I revamped the camera transforms to make sure I'm able to move the camera intuitively should I so choose to do so.
This was done with the help of glm::lookAt()
. While at it I changed the coordinate system to make Z point skyward, the only sensible way.