.. title: CG Homework 2, due Thurs 2019-09-19 (changed)
.. slug: homework02
.. date: 2019-09-09
.. tags: homework
.. category: 
.. link: 
.. description: 
.. type: text


Homework 2, due Thurs 2019-09-19 2359
=====================================

Rules
-----

#. 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.)

#. 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.

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

   #. 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).

   #. Put the code on a web server such as RCS.
   
Questions
----------

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

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

#. *(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.

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

   #. The data is in the file `ncc1701b.data <../../files/ncc1701b.data>`_ .  Each
      line gives the vertices of one triangle as follows:

      x1 y1 z1 x2 y2 z2 x3 y3 z3

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

   #. 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.

   #. 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.

   #. 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)* 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?

#. *(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.

   #. Name some such animals.

   #. For humans, why is it (probably; opinions differ) only
      females?
   

*(Total: 50 points.)*
