CG Homework 2, due Wed 2016-09-14


  1. You may work in teams of 2. Each team should submit their solution under only 1 student's name, but mention both people at the top of the submission. The other student's submission should just name the lead student. (This makes it easier for us to track things and to avoid grading it twice.)

  2. Hand in your solution on RPILMS. As for formats, we'll take (at least) a scanned image of a neatly handwritten page, raw text, PDF, and MS Word.

  3. For the programming question, pick whichever you prefer to get us the code:

    1. Submit a zipped file, containing your .js and .html files and the utility files needed to run it. It must be organized so that if we unzip into a random location and point the browser at the .html file, then it will work.

      It might be easier to move the utility .js files into the same directory as your code (and adjust the include lines).

    2. Put the code on a web server such as RCS.


  1. (5 pts) Which RPI grad was the technical person in the founding group of NVidia?

  2. (5 pts) What hardware component had to get much cheaper in order to make frame buffers possible?

  3. (5 pts) The progress of computer graphics has always been enabled by new hardware. One newish toy is Google Cardboard. Pretend that I've never heard of it, and write 100 words or so summarizing it and giving specific details.

  4. (20) Modify last week's program to display the spaceship NCC1701.

    1. The data is in the file . Each line gives the vertices of one triangle as follows:

      x1 y1 z1 x2 y2 z2 x3 y3 z3

    2. Insert the data into your javascript file and try displaying it.

    3. If this is too much data, then reduce the number of triangles until something displays. Report what went wrong, and how many triangles could be displayed.

    4. You might have to scale the data to fit. I'll let you figure out the easiest way to do that. The problem is that last week's square had coordinates in the range from -1 to 1, while the NCC1701 does not.

    5. Attach a PDF of any files you modified and a screendump. If the file has a multi-thousand line array, it's ok to delete the middle.

  5. (5) In real life, light bounces from object to object, on its way from the light source to the viewer. However, the OpenGL pipeline processes objects independently, and does not allow that (except the an object can hide another object). Why?

  6. (10) According to the tristimulus model, our eyes have three types of color receptors (cones). However several species and some rare human females have four types of cones. They are called tetrachromats.

    1. Name some such animals.
    2. For humans, why is it (probably; opinions differ) only females?

(Total: 50 points.)