The goal of this course is to expose students to techniques for photorealistic synthesis. Ray tracing has become the de facto standard for realistic image synthesis. Our goal is to learn how to render various phenomena based on solid physics principles within a ray tracer. By the end of the course, students should be able to understand how some of the realistic scenes and special effects in movies are generated. If time were not an issue, students would write every ray tracer component from scratch. However, in practice, doing that could take years of coding to complete. We shall thus balance 1) learning the theory 2) gaining an understanding how to code the phenomena 3) actually writing selected components and 4) using a full-blown photorealistic renderer. Thus, rather than have students write all ray tracing components from scratch, we shall base our work off understanding the theory and implementation of a state of the art ray tracer as laid out in the requisite text http://www.pbrt.org. This text grew out of over ten years of teaching a similar course at Stanford university. It walks the reader through both the theory and implementation of a state of the art ray tracer which the students shall also use to create their projects. Some supplementary papers will also be assigned. For those students who have written a basic ray tracer based in an introductory graduate graphics class (e.g. CS 543), this class will take you from where that class ended to where you understand the state of the art in photorealistic image rendering.
The instructor shall be guide students through the main aspects covered. Each student will make 2 presentations over the course of the semester. This semester's class will focus on Physically-based photorealistic rendering. Movies such as Pixar's Cars, the Invicibles and Finding Nemo are based on completely synthetic characters. Magazines and other printed media also create breath-taking images that are also synthetic. Ray tracing is the de facto standard for realistic image synthesis. This course will examine the state-of-the-art in photorealistic image synthesis based on ray tracing and photon mapping (an extension to ray tracing). Examples of topics to be covered include fundamentals of ray tracing, simulating lenses, surface reflectance functions (brushed steel, velvet) , sub-surface scattering (skin, marble), participating media (smoke) The final project will entail implementing one or more of the phenomena discussed in the class and rendering a 3D image that will be entered in a rendering contest such as the Stanford Rendering Contest.
Note: : Although many of the topics covered in this class will touch on some of the techniques used to produce photorealistic images, this is not an art class: it is about understanding techniques used in building a photorealistic renderer for 3D applications. The course will be technical and involve significant but enjoyable work. At least one previous graphics class is a must and knowledge of openGL while not a MUST, would be immensely helpful. We will focus on the rendering component of creating photorealistic images. Some tools used by artists to prepare their final work will either be touched on sparingly or not discussed at all. In other words, don't take the class just because you like looking at cool images.
General InformationLectures: FL 320, Tuesdays, 6pm - 8.50pm
Instructor: Prof. Emmanuel Agu, FL-139, 508-831-5568, email@example.com
Office Hours: Mondays, Thursdays, 3-4pm. Others by appointment (email me first)
Text: Matt Pharr and Greg Humphreys, Physically-Based Rendering: From Theory to Implementation, Morgan-Kaufmann publishers, 2004
- Peter Shirley and R Keith Morley Realistic Ray Tracing, Second Edition
- Andrew Glassner Introduction to Ray tracing Morgan-Kaufmann Publishers, 1989
- Philip Dutre, Kavita Bala, Philippe Bekaert, Peter Shirley Advanced Global Illumination, A K Peters Publishers, 2006.
- Henrik Wann Jensek Realistic Image Synthesis Using Photon MappingA K Peters Publishers, 2001.
While the bulk of the readings from the class will be taken from the text, selected papers will be also be assigned from the computer graphics literature to augment . Students may also be required to perform a literature search to find other relevant papers.
Facilities: Presentations may be done using in Microsoft Powerpoint or any other presentation software. The following powerpoint template should be used for making your slides. Powerpoint Template This is done to ensure that all presentations have the same look and feel.
The final class project will be an entry into a rendering contest. The student shall try to render one of the effects that we have covered during the course of this class and try to make it look as good as possible. The modeling of the scene can use any 3D modeling software such as as Blender, 3D Studio Max, Maya, etc. Rendering shall then be done using PBRT. Where necessary, high level programming languages like C, C++, java or any high level language, and graphics libraries like OpenGL or Mesa libraries may be used. Important: You are responsible for your final choice of platforms and tools for both the presentation and the project. However, no matter what platform you use for your project, you are responsible for making it work and demonstrating your work. If a piece of software which you would like to use is unavailable on the CCC machines, a reasonable effort will be made to install the software for you. If it is still not possible to install your requested software, you may have to use other available software.
Class Websites: The class website is at http://www.cs.wpi.edu/~emmanuel/courses/cs563/S07/index.html. A myWPI class website will aso been set up. The discussion board should be used for asking questions to avoid excessive emails and so that everyone can benefit from answers given. Emails should be used for specific questions which are unique to you.
Grade Policy: Each student will be required to do 2-3 presentations (40%), and projects (50%) and participate in class (10%). I will give the specifications for the projects except the final project. You will decide on final project yourself. There will be no exams.
- The Goals of Rendering
- Ray Tracing I: Basic Algorithms
- Ray Tracing II: Acceleration Techniques
- The Light Field I
- The Light Field II
- Monte Carlo Integration I
- Cameras and Film
- Sampling and Reconstruction: Filtering, Aliasing and Antialiasing
- Monte Carlo Integration II
- Reflection Models I: BRDFs, Diffuse
- Reflection Models II: Glossy
- Texture and Materials (Multiple Importance Sampling, Phases of the Moon)
- Participating Media and Volumetric Scattering
- Light Transport and the Rendering Equation
- Monte Carlo Path Tracing
- Irradiance Caching and Photon Maps
- Current Topics in Rendering
The following are sample images that have been created using PBRT from the Stanford rendering contest. We aim to create similar images in the final project of this course.
The class time will be broken in to two halves which cover two topics (or subtopics).
Schedule (Still tentative!!)
Week Topic Presenter Slides Week 1 Intro talk Emmanuel Agu (slides) Chapter 1 Week 2 Geometry and Transforms Chapter 2, Sections 3.1-3.2 Emmanuel Agu (slides) Week 3 Shapes: Disks - Subdivision surfaces Sections 3.3 - 3.7 Yan Huang Week 3 Primitives and Acceleration Chapter 4 Travis Grant (slides) Week 4 Color and Radiometry Chapter 5 Robert Martin (slides) Week 4 Camera Models Chapter 6 Kevin Kardian (slides) Week 5 Sampling Theory - Image Reconstruction Sections 7.1 - 7.2 Tim Walsh (slides) Week 5 Stratified Sampling - Low Disc Sampling Sections 7.3 - 7.4 Steve Kazmierczak (slides) Week 6 Best candidate sampling - Image reconstruction Sections 7.5 - 7.6 Emmanuel Agu (slides) Week 6 Film and Image Pipeline Chapter 8 Travis Grant (slides) Week 7 Reflection Models Chapter 9 Tim Walsh (slides) Week 7 Materials Chapter 10 Paulo G De Barros (slides) Week 8 Light sources Chapter 13 Robert Martin (slides) Week 8 Texture Sampling & antialiasing - Basic Texturing Sections 11.1 - 11.3 Travis Grant (slides) Week 9 Solid and Procedural Textures Sections 11.4- 11.5 Alex White (slides) Week 9 Noise Section 11.6 Dmitriy Janaliyev (slides) Week 10 Volume Scattering Chapter 12 Paulo G. De Barros (slides) Week 10 Monte Carlo Integration Chapter 14 Emmanuel (slides) Week 11 Russian Roulette - Sampling Reflectance Functions Sections 15.1 - 15.5 Alex White (slides) Week 11 Sampling Light Sources - Volume Scattering Sections 15.6 - 15.7 Kevin Kardian (slides) Week 12 Direct Lighting - Path Tracing Sections 16.1 - 16.3 Juan Li (slides) Week 12 Irradiance Caching - Particle Tracing Sections 16.4 - 16.5 Steve Kazmierczak (slides) Week 13 Light Transport II: Volume rendering Chapter 17 Dmitriy Janaliyev (slides) Week 13 Summary and Conclusion Chapter 18 Juan Li (slides)
Presentation FormatStudents must come prepared with transparencies, slides, videos, handouts, and any other instructional aid determined to be useful in presenting the material. Computer demonstrations are encouraged for applicable topics. If you need any computer or projection facilities for your presentation, see me about making the arrangements. The presentation should last approximately 45 minutes, followed by approximately 30 minutes of questions and informal discussions with a 15 minute break between topics. If the class would benefit from reading an article prior to your presentation, please provide copies of the article at least one week prior to your talk.
Other GuidelinesI expect each student to spend a minimum of 20 hours preparing each talk. Remember, most of your grade for this course is in your presentations, and most weeks you will only spend a few hours reading for other people's talks. Also note that a reading list with sections of the book has been provided for all topics which should minimize time which you spend on a literature search. This leaves a lot of time to do your work, so there is no excuse for shoddy work.