TDT4230_final_project/report/log_part1_intro.md

27 lines
1.3 KiB
Markdown
Raw Normal View History

2019-04-04 14:46:29 +02:00
% TDT4230 - Final assignment log
% Peder Berbebakken Sundt
2019-04-04 14:46:29 +02:00
% 4'th of april 2019
\newpage
```{.shebang im_out="stdout"}
#!/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.