Wednesday, November 7, 2012

Assignment 4 Marking Scheme

Here is the marking scheme I used to grade Assignment 4, along with details of the desired solution for Task 1:

 

Task 1 (30%)

  • If you said something correct but fairly obvious and simple (such as 'rotating the camera around the vector'), you will get only 10%
  • If you did a little better than the minimal description, but wrote something that didn't require you to understand more deeply what the code was doing and why, you will get 15%
  • I am looking for a much more detailed description of all the steps involved; I want to know that you understood it beyond what each line of code has done (for instance, I want to know you understand what the role of the up and lookat vectors actually are for, and how/why we want to change them in the context of the overall game).  Also, why the function is needed goes beyond code organization; I wanted to know why the stuff done in the function is needed.
  • Here is a sample response (something closer to this would get you full marks):
    • This function adjusts the orientation (i.e. rotation) of the camera in space using the input of a vector representing the axis of rotation and the number of degrees to rotate around it. The camera’s defining members (look-at and view-up vectors) are updated to reflect their new orientation relative to the world. This allows us to simulate pitch, roll, and yaw by rotating around the appropriate axis vector.
    • A rotation matrix representing rotation around the input rotVector by angleRad (radians) is created with D3DXMatrixRotationAxis. D3DXVec3TransformCoord applies the rotation matrix to the two defining camera vectors: the view-up vector and the look-at vector. This is enough to say that the camera’s orientation has now been updated since these two vectors completely define that orientation.
    • The last set of cross products and normalizations are done to update the up vector. It probably seems odd that we would do this given that we just rotated it (hence it is “updated”), but the reason it is done because of floating point number inaccuracies in the rotations. There’s a good chance the up and look-at vectors will lose their orthogonality over time, so this update ensures they are always orthogonal.

 

Task 2 (35%)

  • 5% for implementing each of the functionalities correctly

 

Task 3 (35%)

  • 5% each for correctly implementing pitch, yaw, changePositionDelta(D3DXVECTOR3 *dv), changeAbsPoition x 2, moveForward
  • an extra 5% for generally having no build errors (3%) or warnings (2%) (as mentioned on course blog); although this wasn't specified in the assignment, I did ask for it on previous assignments and the course blog, and this task didn't divide out to 35 marks nicely

 

Bonus 1 (20%)

  • 3% most items, 5% airplane roll angle

No comments:

Post a Comment