Assignments and Grading
|Assignment 1: Introduction and Setup [Assignment PDF]
|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]
|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 (or optional closed book in class exam), 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 or mobile device 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.
- Programming on Mobile Devices: We want to strongly encourage the use of mobile devices such as tablets and cell phones as programming platforms in this course. CS 248 will allow one to make games on mobile devices so we want to strongly encourage the use of mobile devices in this course as well. Artistic/technical pictures created and live demoed on mobile devices will receive significant extra consideration when handing out grades.
- Implementation Language:
- If you are programming on a desktop environment (Windows, Mac OS X, Linux), your assignments must be implemented in C/C++.
- If you are programming for an Android device, your assignments must be implemented in Java and/or C/C++.
- If you are programming for an iOS device, your assignments must be implemented in Objective C (which is a strict superset of C).
- 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 and/or mobile device.
- 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.
- Mobile devices should run OpenGL ES (a subset of OpenGL for embedded systems) and implement OpenGL ES shaders for the purposes of the scanline rendering assignment. OpenGL ES is available on numerous devices that use iOS (iPod Touch, iPhone, and iPad) or Android as an operating system.
If you do not wish to develop on a personal computer or mobile device, 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. Registered students will get an extra 200MB of disk quota for the quarter. Please notify the course staff immediately if you do not notice this quota increase within 48 hours of officially signing up for the course.