Project 2a ©Jorg Peters

Points: 35

Purpose

Learn how to use affine transformations to position objects in 3-space

Resources

Set Up

Task 1: Grid

Points: 5

Draw an integer grid on the Y=0-plane for the rectangle (-5,0,-5) to (+5,0,+5).
Draw the positive X axis in red, the Y axis in green and the Z axis in blue. Only draw the positive portion of each axis, of length 5.

Task 2: Camera Rotations

Points: 5

  • Use Perspective projection
  • Place the camera so you can see the whole scene: use glm::LookAt to generate the View matrix.
  • Key C selects the camera.
  • Keys and move the camera along the blue circle parallel to the equator.
  • Keys and rotate the camera along the red circle orthogonal to the equator.
  • Choose the "up" direction so the camera always points to the origin.



    Task 3: Draw the robot arm

    Points: 25

    The robot arm consists of the following parts:

  • Create triangulated objects in the .obj format, e.g. by using Blender. Hint: generate correct normals for later use.
  • To load .obj files exported with Blender:
    tinyobjloader (usage best learned by looking at the examples on github) or
    the supplied void loadObject(char* file, glm::vec4 color, Vertex * &out_Vertices, GLushort* &out_Indices, int ObjectId) function to load your objects.
  • Call void createVAOs(Vertex Vertices[], unsigned short Indices[], int ObjectId)
    or find alternative online

    WHAT TO SUBMIT