This course has no in-class exams. The final exam slot for the class is on Thursday, December 10, 2015 in 12:15-3:15pm as determined by the Stanford University Registrar. During this time, you will present a live demo of the ray tracer assignment. There will be no makeup time for the live demo in the case of conflicting classes as the Stanford University Registrar's policy states that "students must not register for classes with conflicting end-quarter exams."
Assignments and Grading
|Assignment 1: Introduction and Setup
|Assignment 2: Geometric Modeling
|Assignment 3: Shading and Lighting
|Assignment 4: Texturing
|Assignment 5: Sampling
|Assignment 6: Acceleration Structures
|Assignment 7: Photon Mapping
|Assignment 8: Advanced Rendering
- Homework schedule: Weekly homeworks are assigned Tuesday and due the following Monday from 3 to 7pm.
- Evaluation: Grades will be 40% scanline image, 40% raytraced image, 20% homeworks. The weekly graded homeworks are designed as building blocks towards the scanline and raytraced images. There will be 4 homeworks for each image. In-class presentations each count as one homework assignment so that there are 10 assignments in all, and they count for 2% each.
- Collaboration: You may work with a partner for both the homeworks and the two images. 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 must answer.
- Grading: Grading sessions will be held in Gates 210 on Mondays 2-7pm. All of the assignments will be graded in a live-demo format because graphics, like art, is about showmanship and presentation. Even computer graphics professionals often deliver only the final image with the coding behind the image being considered disposable. Furthermore, 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 check/+/- rubric based on the functionality and understanding demonstrated by the student to the CA. 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.) If you miss a checkpoint grade but include the technical requirements in your final images, you will not be severely penalized; however, note that missed homeworks and poorly executed images do seem to correlate. You have many weeks for each of the two images so it is expected that you will budget your time wisely. The real world field of computer graphics is full of deadlines and live-demos and therefore it is good become acquainted with them.
- 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. Artistic/technical pictures created and live demoed on mobile devices will receive significant extra consideration when handing out letter grades!
- Implementation Language: You must implement your scanline rendering using the native OpenGL bindings for your platform.
- If you are programming on a desktop environment (Windows 7, 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).
- If you are programming for a Tizen device, your assignments must be implemented in C/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 out 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.