This course has no in-class exams. The final exam slot for the class is on Thursday, December 11, 2014 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: Generative Art [Assignment PDF][Sample Code]
[GLUT setup directions]
|Assignment 2: Geometric Modeling and Shading [Assignment PDF][Sample Code]
|Assignment 3: Texture Mapping [Assignment PDF][Sample Code]
|Scanline Image [Assignment PDF]
| Questions from last year's assignment
Video Solutions for Long Answer Questions
|Assignment 4: Basic Ray Tracing [Assignment PDF] [Starter Code]
|Ray Tracing Code Tutorials from last year:
[Basic Ray Tracing]
[Transparency, Textures, and Camera Effects]
|Assignment 5: Acceleration Structures [Assignment PDF]
[Same Starter Code as Assignment 4]
|Assignment 6: Camera Effects and Participating Media [Assignment PDF]
[Same Starter Code as Assignment 4]
|Ray-traced Image [Assignment PDF]
There are three major assignments given in the class. Your final grade will be the average of these three grades.
- Artistic/Technical Pictures: During the course of these assignments, you will render two artistic/technical pictures and receive a single letter grade for each picture. The first major assignment will require you to generate an artistic/technical picture using a scanline renderer. The third major assignment will require you to render a second artistic/technical picture using a ray tracer. The class will have weekly assignments given on Tuesday and due the following Monday that build up to these final artistic/technical pictures with specific technical requirements for each assignment. These supplemental assignments will be graded on a rubric of +,-, or check, because they are building blocks for the two artistic/technical pictures. The final letter grades for these artistic/technical pictures will incorporate each of the building block grades of +,-, or check. Thus, if you get building block grades of all -’s leading up to the cumulative artistic/technical picture assignment, or do not do and/or present the building block assignments, do not be surprised if your grade on the cumulative artistic/technical picture assignment is low. Note: If you miss the grading session entirely or do not put in any effort on an assignment, you will receive a grade of 0 which is a lower grade than a - grade.
- Take Home Written Assignment: The remaining (and second) assignment will be a take home written assignment on the mathematics and physics behind light and rendering. It will receive a numeric score which will be curved to match the grade distribution of the other two assignments. This take home written assignment is open book, open notes, and you will have a couple weeks to complete it.
- Evaluation: Grading sessions will be held in Gates 219 (second floor open space) from 3 pm to 7 pm on each Monday that an assignment is due. All of the assignments, with the exception of the take-home exam mentioned above, will be graded in a live-demo format because graphics, like art, is about showmanship and presentation. Furthermore, if you take CS 248, you will be required to live-demo a video game. During the grading sessions, all of the CAs will be available for grading and, if time permits, answering questions pertaining to the course. You are required to attend and consult a CA for a (very) short in-person grading session. Assignments will be graded on a +,-, and check rubric based on the functionality and understanding demonstrated by the student to the CA. 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. 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.
- Collaboration: You may work with a partner for each of the two artistic/technical pictures, and may have the same or a different partner for each artistic/technical picture. You may discuss the artistic/technical picture assignments with your peers. However, you (and your partner, if applicable) are expected to implement and demonstrate your own picture. 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. You may work in groups of three students on the take home exam, discussing the problems and solutions, but each person is expected to turn in their own unique and original write-up. The names of your collaborators need to be on the top of your take home exam so that we can ensure that you did your write-up individually. We realize that answers will contain similarities but we do not want students to merely copy others’ work.
- Late Assignments: No late assignments will be accepted due to the live-demo aspect of grading. If you miss a checkpoint grade but include the technical requirements in your final artistic/technical picture, you will not be severely penalized. You have many weeks for each of the three major assignments so it is expected that you will budget your time wisely. Furthermore, the real world field of computer graphics is full of deadlines and live-demos and therefore it is good become acquainted with them. Even computer graphics professionals often deliver only the final image with the coding behind the image being considered disposable.
- 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.
Scan-line Image Statistics
Written Assignment Statistics