Posts

Showing posts from November, 2019

18th November 2019

Today we we're introduced to the concept of different types of light in the graphics engine. We were tasked with implementing ambient, spot and directional lighting into our software. I started to added the Directional light class to my project and implemented several methods to return the RGB intensity from the object. Further I had to read into how all of this worked, as it included lots of new formula that I had never worked with. After this I revised for the graphics test tomorrow, trying to remember the matrix's for different forms of rotation.

15th October 2019

This week will be the final week I blog every day as the work load has greatly increased leading to me not having enough time to maintain this blog, instead I will post on Monday, Wednesday and Friday in order to reduce the workload I have to deal with. Today I worked on porting a MySQL database over to access and developed a front end for it. This was the final tutorial that had exercises before I move onto just developing my database for my assessment. Further, I researched more about my placements into companies covering the subject of Autonomous Vehicles, I've applied to 5 companies covering this subject.

20th November

In the test I managed to score 66%. This is slightly below what i expected, but I know that some of the answers I got wrong, I simply got confused by the wording. From this I am going to change my method of revision and greatly increase the amount I do daily, I will take this over to my next test in Databases. For the remainder of the day I got my directional lighting fully working with minimal lighting glitches. I am now nearly finishing the book "make it stick the science of learning", but I don't have much time to read so my reading has greatly decreased.

14th November 2019

Image
I spent my day revising for the upcoming Graphics and Databases tests. The graphics test covers the theory behind all the rendering we have been doing for the last 4 weeks, with a heavy focus on week 6's matrix theory. For databases, I need to cover E/r diagram theory and a large amount of SQL syntax (not specific to any DBMS such as PostgreSQL). For this I am building a quiz-let library of questions as in my study of learning theory, a large majority of studies suggest that testing is a much more effective method for practicing retrieval ( the method of putting time between practice so revision is more difficult ). So far I have found quiz-lets' user interface slightly frustrating, but I'm getting used to it.

13th November 2019

Image
Today I spent my time finishing off the back faced culling and sorting. I created the "calculate backfaces" method to the Model class which sets the cull value to true or false. After this was applied and was working I applied the method to sort polygons by z depth. The reason for this is to assure that the furthest back polygons are drawn first, and the closest are drawn on top of them. C++ has a built in <algorithm> package that uses quick sort organise collections. with this I had to implament a > operator as the iterator did not know which value to compare in the instance.

12th November 2019

Image
Today we were given the task of applying back faced culling to our rendering engine. I spent the session figuring out the tasks that were required of me to complete this addon. The major steps are adding a vector class to the program, this class would need to store a vector [x, y, z] and, to be able to calculate the cross product and dot product of 2 vectors. These would be used for figuring out which faces need to be marked for "culling" (if they are going to be drawn or not). Once I figured all this out I build the class and applied it to the Model class. By the time I did this I ran out of time so I had to pack up and go to my Networks tutorial. In this I build a virtual Diffy Helman key exchange. This was using 2 classes to mirror the effects of a network. A clear which contained 2 node classes that represented the client and the server. These classes passed and received values from the "clear". The final result was a working Diffy Helman key exchange.

11th November 2019

Image
Today I focused on reading the main module book for Graphics 1 (essential mathematics for Computer games and interactive applications). This was because I felt that I had a mid level understanding of what I was doing but  there were some aspects that I could apply but not explain with ease. I mainly read into the viewing pipeline and why each step is performed at each point. I read around 50 pages of this book, by the end I was 100% confident with the theory of the pipeline.

8th november 2019

Image
Today I finished off fixing the errors in my graphics code. There were 2 errors with my rending, the first was my rotation based matrices. I was not using radians to perform my calculations, I was using degrees in all rotation leading to strange, spiritic motions. Fixing this normalised the movement but showed that no matter where I moved the camera, your view would always be from within the cube. This was caused by the addition operator always setting the W coordinate to 0 when it should be setting it to 1. Fixing this displayed the cube on the screen rotating by 1 degree every second. After this I began my databases practical where we had to move a phpAdmin database over to MySQL. Due to the different syntax of SQL on different database systems, I had to replace all date entries in this database on top of some changes in how keys are designated. this took me about an hour as there we're a lot of dates to convert but after this it was too late to continue. I am on the last task fo...

7th November 2019

Image
Today I spent my time working on getting my graphics cube rendering. Throughout the day I encountered an error in how I was representing the matrices. I was loading in starting with columns, then iterating using rows. This made inputting and multiplying matrices awkward and non intuitive on top of making the program hard to build upon so I changed this in every instance the matrix was used. This was done in: the matrix class, the rasteriser class, the model class and vector. This removed a large amount of the issues and allowed something to render, but despite this, all that rendered was sporadically moving lines. I plan to fix this tomorrow.

6th November 2019

Image
Today was spent finishing the remaining 16 exercises presented last week in SQL. The vast majority of them were easy but number 17 presented an issue due to the lack of documentation of the Distinct statement. For the other exercises it details all functions you need and how their used, but for Distinct no documentation is present so using the functions given, you cant achieve the query requested in the exercises. I was stuck on this for a long time until I googled it and found out about Distinct. At which point I finished the remaining exercises in less than 20 mins.

5th November 2019

In my graphics lab today, due to the cancelled lecture yesterday, we dedicated half of the lab to having the lecture, this spilled over to the lab half slightly but it gave us a detailed description of what was required of us this week as this week would give us the baseline for a pass on the graphics assessment. The task was to create the viewing pipeline in order to display the md2 object in the window made by the framework. The viewing pipeline has 4 main steps: the model transformation, the viewing transformation, the projection transformation and the screen transformation. These all take the matrix, dehomogenise the coordinates and allow them to be put onto a 2d plane. Due to the volume of calculations required to do this, I spent the remainder of the session reinforcing my framework making it much more modular and less fragile. In networking we were tasked to get the vigenere running over a network framework made by the lecturer. In this tutorial I spent most of the time reading ...

4th November 2019

Todays graphics lecture was cancelled due to the environmental controls being broken leading to the lecture hall being around 26 degrees and hotter, without the info of the lecture I couldn't start tomorrows tasks so I started to finish both the vigenere square from networking and then started putting the finishing touches on my cv, running the final result by the university careers hub. With this done I started to write my cover letter up. This entailed using multiple examples provided by companies such as IBM and Microsoft alongside the university's webpage on cover letter writing. For the remainder of the day, I refined a 3 page Cover letter down to a 1-page template that covers the basics of what I want to put forward, leaving large amounts of space for customization to each roll I apply for.