Write Up 01
Press Space bar to slow down the triangle's animation.
Press Escape to exit the application.
While working on assignment 01, I checked all the source files that are in the provided Graphics project. I noticed the #include projects and found the following needed to be referenced by the Graphics project: UserOutput, Windows, Concurrency, OpenGlExtensions, Asserts, Time, Math, Results, Platform, Logging and Assets.
A project that needed to have Graphics as a reference was the following: Application. There is however two projects that #include the Graphics project, this is OpenGlExtensions and ShaderBuilder. It is not necessary to add the reference to Graphics because no function is called from a .cpp file.
Judging from the first week of class, my personal goals is to understand how a rendering pipeline works. As a side goal, I would like to understand how shaders are built through said pipeline. I have very limited knowledge of Direct3D and OpenGl. Understanding their differences would greatly allow me to know the reasons why each requires specific configurations.
I personally found the assignment very rewarding. I learned how to add property sheets to new projects within a Visual Studio solution. It is a really good time saver to know that property sheets can be created from existing ones.
Retargeting the installation directory for the game proved to be very useful as making subsequent games that used the same naming conventions will be organized more efficiently.
During assignments from previous terms, I was never sure about the issues I was facing when I would encounter a LNK2019 error. Doing this assignment really shed some light on my understanding of why linker error occur sometimes and how to have a better idea of what it is that is causing the issue in the first place.
Seeing the example of typing .d3d and .gl after the names of source files for different configurations really eases the burden of having to separate similar functionality for Direct 3D and OpenGl.
I had a lot of fun getting to play a bit with the Vertex and Fragment shaders. I managed to make the triangle move and rotate by multiplying the x and y components of the vertex positions like so:
I even added a little bit of translation to move the triangle while it rotated by adding position.y*sin(simulationTime) to the previous values of the position’s components.
In order to make the triangle’s animation to slow down, I found the code to check if the ESCAPE key is pressed down in one of the source files of the ExampleGame project. I created a similar code for detecting if the SPACE bar is pressed down and added this code in one of the source files of Application to half the simulation time passed to the ExampleGame.
I struggled quite a lot in this assignment understanding how the solution had to be configured to place executables and generated content in the game install directory. Thankfully, John-Paul Ownby, Bharat Gudihal and Ameya Gadkari provided some insight.
The time it took me to complete this assignment was 8 hours.