CSC473 - Advanced Rendering Techniques

Professor: Zoë J. Wood


Welcome to advanced rendering - 2013!. This course will cover advanced rendering techniques such as global illumination, and raytracing.

Student's final projects:
The top voted final projects from Spring 2013
final projects from Spring 2013
final projects from Spring 2011
The top voted final projects from Winter 2010
final projects from Winter 2010
student's 'best' images from Winter 2010

Course material:
See polylearn for current course content!
syllabus

Labs
See polylearn for current course content!
Lab 1
Lab 2
For reference only from past classes
Joint Lab with 458 - CUDA ray tracer
Large files for 458+473 profiling - thanks to B. Somer
Example input file for scene complexity: bunny_small.pov ~500 spheres
-example output: bunny_small ~500 spheres
Example input file for scene complexity: bunny_large.pov ~8k spheres
-example output: bunny_large ~8k spheres
Example input file for scene complexity: bunny_jumbo.pov ~36k spheres
-example output: bunny_jumbo ~36k spheres
Example input file for scene complexity: dragon_large.pov ~5k spheres
-example output: dragon_large ~5k spheres
Example input file for scene complexity: dragon_huge.pov ~100k spheres

For reference only from past classes
Second Joint Lab with 458 - CUDA ray tracer
Lab report requirments
Large files with triangles (and some with spheres) for 458+473 profiling - thanks to B. Somer
Example input file for scene complexity: bunny_small_tris.pov
-example output: bunny_small_tris
Example input file for scene complexity: bunny_large_tris.pov
-example output: bunny_large_tris
Example input file for scene complexity: bunny_jumbo_tris.pov
-example output: bunny_jumbo_tris
Example input file for scene complexity: bunny_tasty.pov triangles and spheres
-example output: bunny_tasty triangles and spheres
Example input file for scene complexity: dragon_large_tris.pov
-example output: dragon_large_tris
Example input file for scene complexity: dragon_huge_tris.pov
-example output: dragon_huge_tris
Lab 3
Lab 4

Projects
See polylearn for current course content!

Project 1 -parsing scene format and raycast
Description of povray format for our assignment
Example input file: ugly.pov
Example output file: ugly.tga
Example input file: simple.pov
Example ray cast of a simple scene

Project 1 - part 2, shading and shadows
Example input file: simple_spec.pov
Example of a simple scene with povray specular
Example shaded simple scene with shadows
Example input file for reflection and refraction: simple_reflect.pov
Example output file: simple_reflect.jpg
Example output file: simple_reflect.jpg
Example input file for reflection and refraction: simple_reflect2.pov
Example output file: simple_reflect2.jpg
Example output file: simple_reflect2.jpg
Example input file for object transforms: valentine2.pov
Example output for: valentine2.pov (note my specular will not match yours)
Example input file for camera transforms: simp_cam.pov
Example output file: simp_cam0.jpg
Example output file: simp_cam1.jpg
Example output file: simp_cam2.jpg
Example output file: simp_cam45.jpg

Project 1 - part 3, reflection and refraction
Example input file for reflection and refraction: simple_refract.pov
Example output file: simple_refract.jpg
Example output file: simple_refract.jpg
Example input file for reflection and refraction: ugly_part.pov
Example output file: ugly_part.jpg
Example output file: ugly_part.jpg
Example input file for reflection and refraction (without transforms): recurse_simp2.pov
Example output file: recurse_simp2.tga
Example input file for reflection and refraction: recurse_simp.pov
Example output file: recurse_simp.jpg
Example input file for reflection and refraction: recurses.pov
Example output file: recurses.tga
Example input file for triangles with no xforms: simple_tri.pov
Example output file: simple_tri.tga

Project 1 - part 4, scene complexity and GI
Example input file for scene complexity: balls2.pov
Example output file: balls.tif
Example input file for scene complexity: bunny.pov (thanks to hmckenziechapter)
Example output file: bunny.jpg
Example input file for scene complexity: gnarly.pov
Example output file: gnarly.jpg

Midterm 2 - take home portion povray file (draft): midterm2.pov
Final Renders - new files:
final1.pov
final1.jpg
final2.pov
final2.jpg - note has no GI and box colors greyed in final version - your render should include GI and you can change spheres to diffuse if necessary

Student created povray files:
Ryan Schmitt's 'Cornell box'
Nick Moresco's 'evil' file
povrays output of Nick Moresco's 'evil' file

Useful links:
Ray tracing chapter of Shirley book
Ray box intersection
One way to construct a bounding box hierarchy from Caltech course CS174b
Description of complete povray format
A decent C++ intro, tho I disagree with parts
http://www.codermind.com/articles/Raytracer-in-C++-Introduction-What-is-ray-tracing.html
http://www.ccs.neu.edu/home/fell/CSU540/programs/RayTracingFormulas.htm