CS 636 - Advanced Rendering Techniques
Spring 2022
Description: The creation of realistic images from 3D models is central
to the development of computer graphics. The ray tracing algorithm has
become one of the most popular and powerful techniques for creating
photo-realistic images. Ray tracing's simplicity, elegance and ease of
implementation make it one of the most important image generation algorithms
in computer graphics. This class will explore in detail the algorithmic
components of ray tracing.
These include
- Object representations
- Object-ray intersections
- Viewing/camera models
- Shading models
- Reflection & refraction models
- Acceleration techniques
- 2D/3D texture mapping
- Anti-aliasing & filtering
- Participating media
Students will implement many of these components in their class programming projects.
Other types of rendering algorithms will be discussed, e.g. radiosity,
volume rendering, non-photorealistic rendering and photon mapping.
Location - Online
Time - Wednesday, 6:00 PM → 8:50 PM
Instructor
Textbooks
Recommended
-
Ray Tracing from the Ground Up, Kevin Suffern, AK Peters, 2007,
ISBN: 978-1-56881-272-4
Supplemental
-
An Introduction to Ray Tracing, Andrew S. Glassner (ed.),
Morgan Kaufmann, 1989, ISBN: 978-0122861604
Now available for free download!
Grade
- Programming Assignments - 90%
- Final Exam - 10%
I intend to use the standard grading scale of 100→ 90 (A), 89→ 80 (B),
79→ 70 (C), 69→ 60 (D), else (F).
Please also note that
incompletes will not be given for this course.
Assignments
Each assignment is worth 10 points.
Post several (at least 3) images generated from each assignment to a web site.
Make sure that your images and the objects in your images are big enough
to see/evaluate the effect implemented in each assignment.
Your images should leave no doubt that you have implemented a particular feature
correctly.
Programming assignments may be written in any language. But student
experience has shown that interpreted languages, e.g. python, are too
slow and inefficient for the serious numerical computing needed to do
ray tracing.
Collect and submit all of the needed source files for an assignment in a single zip file.
Include a README file that says what source files and which lines contain
the code that implements the central feature for that assignment.
I will be looking over your code, instead of trying to run it, in order
to grade the assignments.
You can use ImageMagick to read/write images.
Follow all of the instructions listed in the assignments.
5 points will be subtracted from an assignment if all of the
instructions aren't followed.
Assignments are due at 11:59PM on the due date. Well, ... I will honor the vampire rule.
Post images on the web and code on Bb Learn.
E-mail me the URL.
Late Policy
- One point off per day late, up to a maximum of 5 points.
- All regular assignments due at 11:59 PM on June 5th.
- No Incompletes!
It is expected that you will do you own work, i.e. write your own
software for the assignments.
You cannot "borrow" code from other
students or download programs from the Internet.
Specifically, you cannot use the code provided by the Suffern or
Shirley books (or their derivatives) for your assignments.
Any student violating this policy will be
given an 'F' for the class.
You may use image and basic math libraries,
e.g. for storing and manipulating vectors and matrices.
Final Exam
There will be a final exam on material not covered by the
regular assignments.
Topics covered on the final exam are
- Radiosity
- Photon Mapping
- BRDFs
- Ray Tracing CSG models
- Volume Rendering
- Spot Lights
- Sampling and Reconstruction
- Texture Mapping
- Procedural Textures
- Perlin Noise and Turbulence Functions
- Non-Photorealistic Rendering
Questions related to these topics will be in a short-answer format.
Class Schedule
Week 1 - 3/27/22
Week 2 - 4/3/22
Week 3 - 4/10/22
Week 4 - 4/17/22
- Read Suffern: Chapters 22
- Read Glassner: Chapter 6
- Related papers
- M. Agate, R.L. Grimsdale and P.F. Lister, "The HERO
Algorithm for Ray-Tracing Octrees," Proc. Eurographics Workshop on Graphics Hardware, 1989.
- H. Samet, "Implementing Ray
Tracing with Octrees and Neighbor Finding," Computers & Graphics,
Vol. 13, No. 4, pp. 445-460. 1989.
- K. Sung, "A DDA Octree
Traversal Algorithm for Ray Tracing," Proc. Eurographics,
pp. 73-85. 1991.
- K.-Y. Whang, et al., "Octree-R:
an adaptive octree for efficient ray tracing," IEEE Transactions on Visualization and Computer Graphics, vol. 1, no. 4, pp. 343-349, Dec. 1995.
- J. Revelles, C. Urena and M. Lastra, "An Efficient
Parametric Algorithm for Octree Traversal," Journal of WSCG, pp. 212-219, 2000.
- Lecture Topics - Acceleration Techniques
- Programming Assignment 3 - Add an acceleration technique
Week 5 - 4/24/22
- Assignment 2 due 4/24/22
- Read Suffern: Chapters 13, 18 & 26
- Related papers
- D. Greenberg, M. Cohen and K. Torrance, "Radiosity: A method for
computing global illumination," The Visual Computer, 2(5):291--7,
September 1986.
- M. Cohen and D. Greenberg, "The hemi-cube: a radiosity solution for complex environments,"
ACM Computer Graphics
(SIGGRAPH '85 Proceedings), Vol. 19, No. 3, July 1985, pp. 34-40
- M. Cohen, S.E. Chen, J.R. Wallace and D. Greenberg, "A progressive refinement approach to fast radiosity image generation,"
ACM Computer Graphics
(SIGGRAPH '88 Proceedings), Vol. 22, No. 4, August 1985, pp. 75-84
- H. Wann Jensen ,
"Global Illumination using Photon Maps ," Proc.
7th Eurographics Workshop on Rendering, 1996, pp. 21-30
- Lecture Topics -
Week 6 - 5/1/22
Week 7 - 5/8/22
Week 8 - 5/15/22
Week 9 - 5/22/22
Last modified on May 27, 2022.