Assignments and Grading
|Assignment 1: Introduction and Setup [Assignment PDF] [Myth Cluster Installation Helper]
|Assignment 2: OpenGL Calisthenics [Assignment PDF]
|Assignment 3: Geometric Modeling [Assignment PDF]
|Assignment 4: Shading and Lighting [Assignment PDF]
|Assignment 5: Texturing [Assignment PDF]
|Assignment 6: Sampling [Assignment PDF]
|Reference Image for Final Project [Assignment PDF]
|Assignment 7: Acceleration Structures [Assignment PDF]
|Assignment 8: Photon Mapping [Assignment PDF]
|Final Project: Ray-Traced Image [Handout PDF]
- Homework schedule: Weekly homeworks are assigned Tuesday and due the following Monday from 3 to 7pm.
- Evaluation: Grades will be 32% homeworks, 18% class engagement, 50% ray traced image. The weekly graded homeworks are designed as building blocks towards the final ray traced image. There will be 8 homeworks and they count for 4% each. Extra credit: there will be a few opportunities to earn extra credit for those attending class and on their toes. :)
- Collaboration: You may work with a partner for both the homeworks and the final ray traced image. You may change partners as often as you wish throughout the quarter. It is recommended but not required that you attend the in-person grading session with your partner, if applicable. However, the CAs will ask independent questions -- The person being asked the question by the CA should answer.
- Grading: Grading sessions will be held in Gates 205, 208, and 210 on Mondays 3-7pm. All of the assignments will be graded in a live-demo format since graphics, like art, is partially about presentation. Even computer graphics professionals often deliver only the final image with the coding behind the image considered disposable. (If you take CS 248, you will be required to live-demo a video game.) You are required to attend and consult a CA for a (very) short in-person grading session. During the grading sessions, all of the CAs will be available for grading and, if time permits, answering questions pertaining to the course. The course assistant will ask you to demonstrate your solution to the assignment, look at both the code and results, and ask you questions to assess your understanding of the material. Make sure you can answer questions about all parts of the code, regardless of which parts you or your partner may have done individually. If you cannot attend the weekly grading session, it is your responsibility to contact a CA to schedule an appointment for assignment grading that takes place before the weekly grading session. If you do not have access to a laptop that you can bring to the grading session, a CA will accompany you to the myth cluster where you will demonstrate your assignment. In this case, your code must compile and run on the myth machines. We will not accept email submissions of code. Please be aware that the Gates Building is locked between 5:30pm (except for the front door which locks at 7pm) and 7am Monday through Friday and all day during Saturday, Sunday, and University Holidays.
- Rubric: Assignments will be graded on a 0-4 point basis. The rubric will be provided at the end of each homework's writeup. If your homework grades are not going well, do not be surprised if your final image grade is lower than what you expect. Feedback is very important in computer graphics, so please take each homework seriously and attend the grading sessions each week.
- Late Assignments: As a general rule, no late assignments will be accepted. Exceptions will of course be made for unforeseeable circumstances and as required by university or departmental policy.
- Implementation Language:
- Assignments must be implemented in C/C++.
- Familiarity with C++ is assumed, but we provide a refresher document on the language here: [Primer]
- High-Level Graphics Libraries: We will not accept assignments that utilize either DirectX or high-level graphics libraries such as Processing and Cinder.
Hardware and Software
You are encouraged to do class assignments on your personal computer.
- Computers should contain a modern graphics card that runs OpenGL and implements OpenGL shaders in order to complete the scanline rendering assignment. OpenGL is readily available on Windows, Mac, and Linux platforms and the starter code has been tested on all of these platforms.
If you do not wish to develop on a personal computer, you will have access to the myth machines located in Gates B08. These 3.2 GHz DELL Dual-Xeon Linux boxes, named myth1 through myth16, are available for remote access. All students with a SUNetID automatically have accounts on these machines. Home directories are shared with the Stanford Computing Clusters using AFS. Please notify the course staff immediately if you have any issues with the homework assignments on these machines. In particular, the build instructions provided in the assignment writeups must be modified since users do not have superuser access for installing packages on the myth machines. A set of instructions to augment the assignment 1 build instructions is provided here.