CSE168: Rendering Algorithms
Spring 2014


Steve Rotenberg

Office hours: MWF 10:50 - 11:50pm in EBU3 4150

Teaching Assistant: Matteo Mannino

Office hours: MW 1:00pm-3:00pm EBU3 4150 or by appt.


Sign up for CSE168 Spring 2014 on Piazza


MWF 12:00-12:50pm, WLH 2204
Discussion: Wednesday 3:00-3:50pm, WLH 2204



Peter Shirley et al., "Fundamentals of Computer Graphics", 2nd or later edition, AK Peters 2005 [Errata]


Useful book on geometry, ray intersections, transformations etc.
Philip Schneider and David Eberly, "Geometric Tools for Computer Graphics", Morgan Kaufmann 2002

More advanced text on global illumination and photon mapping
Henrik Wann Jensen, "Realistic Image Synthesis Using Photon Mapping, AK Peters, 2001

Slightly dated, but still a very comprehensive overview of image synthesis
Andrew Glassner, "Principles of digital image synthesis", Morgan Kaufmann, 1995

Course Objective

This course will cover the basic algorithms used for computer graphics rendering. During the course a ray tracing program will be implemented. This program will include acceleration structures, and advanced rendering capabilities such as Monte Carlo ray tracing and photon mapping. At the end of the course the students should be able to write a ray tracer, able to handle different types of geometry efficiently, capable of choosing good acceleration structures, have basic knowledge of shading models such as the Lambert and Phong models, knowledge of texture and bump mapping techniques (possibly mipmap filtering), basic knowledge of sampling and filtering, global illumination and photon mapping, and an idea of more advanced topics such as programmable graphics hardware.


The ray tracing algorithm, camera models, geometry intersection, geometry tessellation, acceleration structures, shading models, texturing, bump mapping, sampling and filtering, and a brief introduction to advanced topics such as Monte Carlo ray tracing.


This is class is for 4 units. There are 4 programming assignments worth 55 points of the total grade. There are two exams worth 30 points of the total grade. The total is 85 points.


You are free to choose the language and platform to implement them, but C++ is recommended for its object oriented features and speed. You might want to take advantage of any speed optimizations available in your chosen environment. (Compiler optimizations, OpenMP, OpenCL, SSE, AVX, CUDA for NVidia cards, etc are a few possibilities)

Project 1 (12 points) - Basic Ray Tracer - Due 4/11
- Assignment: docx pdf
- Sample Code
- Test image
- Test image small
- Sample Extra Credit Image

Project 2 (12 points) - Spatial Data Structures - Due 4/25
- Assignment: docx pdf
- Dragon.ply file
- Test image - Updated with correct brightness
- Extra Credit Image
- Update: You only need to implement 2 of the following for extra credit; Antialiasing, Area lights, and Fresnel dielectrics and metals

Project 3 (12 points) - Materials and Textures - Due 5/14 (extended)
- Assignment: pdf
- Dragon.ply file
- Test image

Projects are due before class in EBU3 basement lab (10am-11:50am) on the due date, or speak to the instructor for submission directly after class.
5 points are deducted for a late submission the following week after the due date.
10 points are deducted for a late submission after 1 week after the due date.

Final Project (19 points) - Due at presention during Finals Week
- Assignment: Render a Scene or your choice with a complex feature as discussed in class (and the slides).
- Make a website describing your final project and the process it took to create your final render. This website should discuss your goals, show intermediate steps and images, and your final image. Please provide a single zip file with a single .html file that contains your website along with any images that you wish to use for your website. Do not include images that you aren't shown on the website, and make sure all images are linked to the relative paths you set them. We will post your final projects here. Please email them to Matteo using the address above. (and feel free to post them on your own service and send a link, instead)

Final Projects
Michael Chao
Andrew Conegliano
Shahrzad (Shazzy) Gustafson
Monica Liu
Yao Lu
Loick Michard
Gael du Plessix
Richard Tominaga
David Smith
Dylan Phan
Eliah Overbey
Haohuan Li
Lois Burg
Max Takano
Olivier Samuel
Pierre Collet
Rex West
Robert Maloney
Scott Ruegsegger
Theophane Rupin
Thomas Wolff
Yao Lu
Alex Tsang
Anders Boe
Andrei Thompson
Eric Wong
Gur Yang
Russell Larson
Krishna B Mullia
Conner Brew
Chiwei Tseng
Chuxiong Shen


There will be a midterm (15 points) and a final exam (15 points). (updated)

Useful Resources

Ray Tracing News
Ray Tracing Document (raytrace.pdf)

Schedule (Tentative)

Date Topic Reading Slides
Week 1
Mar 31 Topics Overview, Introduction to Ray Tracing, Linear Algebra
Apr 2 Cameras & Scenes, Project 1 Assigned slides
Apr 4 Ray Intersections slides
Week 2
Apr 7 Fresnel Surfaces slides
Apr 9 Materials slides
Apr 11 Project 1 Due, Shadows & Area Lights slides
Week 3
Apr 14 Spatial Data Structures 1, Project 2 Assigned slides
Apr 16 Spatial Data Structures 2 slides
Apr 18 No Class
Week 4
Apr 21 Anti-Aliasing slides
Apr 23 Texture Mapping slides
Apr 25 Project 2 Due, Random Numbers and Mapping slides
Week 5
Apr 28 BRDFs slides
Apr 30 Midterm Review slides
May 2 Midterm
Week 6
May 5 Cameras slides
May 7 Adaptive Sampling slides
May 9 Light Physics slides
Week 7
May 12 Path Tracing slides
May 14 Project 3 Due, Volumetric Rendering slides
May 16 No lecture
Week 8
May 19 No lecture
May 21 Bezier Surfaces slides
May 23 Tessellation slides
Week 9
May 26 Holiday
May 28 Guest Lecture - Photon Mapping slides
May 30 High Dynamic Range slides
Week 10
June 2 Procedural Texture slides
June 4 - slides
June 6 Final Exam

Last update: June 1st, 2014