Skeleton Code

When you compile the skeleton code for HW1, the arrow keys will not work. You must add this functionality.

Common Math Constants/Functions

pi, cos, and sin should be defined for you when you are modifying Transform.cpp. Note that cos and sin take radians. Example:
cos(90.0 * pi/180.0);

GLM Matrix Multiplication

Depending on your implementation, you may need to left or right multiply matrices. More details can be found on this Piazza post.

Linux Binaries

A difficulty with Linux systems is that binaries are not readily portable between different systems. If you cannot run the binaries for the solution, you should try another machine/OS.

Left/Right Keys

You must match the implementation exactly, in regards to the interaction with the left/right/up/down buttons. Left will rotate the teapot left, and up will rotate the tepot down.

Useful URLS

Here are some URLs that may be useful to you in project 1:

  1. Wikipedia Article on Rotation Matrix
  2. GLSL Types
  3. open gl reference card
  4. Vector and Matrix Operations
  5. GLM Documentation
  6. gluLookAt Specification

GLM Documentation

Some students were asking about documentation for GLM. You can find the documentation for GLM here:

    GLM Trig Functions GLM Geometric Functions:
Note: You can click on GLSL man pages to view more document.

Linux Solution Binary

The linux binaries are not really portable across platforms and architectures. Either run the solution elsewhere or just use the feedback server for verification; it should not affect your ability to do the assignment.


If your system complains about this missing from SYSROOT, then just put them in the HW1 DEBUG directory.

Turning Left or Right on Left Key?

You should try to match the given solution *EXACTLY*. (In this case, turn the teapot left or similarly move the viewpoint to the right )