| Lecture Notes | Example Code | Homework | 
|  |  | 
HW2: Covers Blender object modeling.  Due anytime Thursday, April 19 via email.
 (modified 2012-04-10)
 | 
|  | 
|  mesh2_deform--Deform vertices using a time-dependent shift.
 .zip or 
 .tgz
 (2012-03-27) |  |  mesh1_read--Load a .obj model (from Blender), and draw the faces with random colors.
Also includes a raytraced sphere, with Z buffer hybrid rendering.
 .zip or 
 .tgz
 (2012-03-27) |  | 
proj1: Project presentations are Tuesday, March 27th in class, and 
final code is due Thursday, March 29th at midnight on Blackboard.
 (modified 2012-03-22)
 | 
|  | 
|  ray9_CPU--Raytrace on the CPU, not the graphics card.  This lets you use true recursion, std::map, and other data structures not supported by the GPU.
 .zip or 
 .tgz
 (2012-04-30) |  |  ray15_waterblobs--Refractive blobs, where rays can pass inside or outside.
 .zip or 
 .tgz
 (2012-03-06) |  |  ray14_blobs--Render a blob object from a 3D distance field.
 .zip or 
 .tgz
 (2012-03-06) |  |  ray13_cloud3D--Use a 3D texture to add mottled density to cloud layer.
 .zip or 
 .tgz
 (2012-03-01) |  |  ray12_clouds--Volume renders a cloud layer, by reading "clouds.jpg" with the SOIL library.
 .zip or 
 .tgz
 (2012-02-23) |  |  ray11_fogclumps--Patchy fog, integrated by stepping along each ray with a finite step size.
 .zip or 
 .tgz
 (2012-02-21) |  |  ray10_fogball--Draw volume-rendered uniform gray fog inside a sphere.  Try flying inside the sphere!
 .zip or 
 .tgz
 (2012-02-20) |  |  | 
| 
02_14_refraction: 
		Refracted Rays, Snell's Law, and Fresnel,  
		2012-02-13
02_07_recursion_reflection: 
		Recursive Raytracing, on GPU Hardware without Recursion,  
		2012-02-08
01_31_multi: 
		Raytracing Multiple Objects,  
		2012-01-30
01_26_ray_intersections: 
		Ray-Object Intersection for Planes, Spheres, and Quadrics,  
		2012-01-20
01_19_basics: 
		OpenGL and Vector Math Basics,  
		2012-01-20
 | 
|  ray9_stack--Use a simulated stack to follow both reflected and refracted rays.
 .zip or 
 .tgz
 (2012-02-16) |  |  ray8_beach--Simple Fresnel approximation for water reflectance, 
and a curvature approximation for caustics.
 .zip or 
 .tgz
 (2012-02-16) |  |  ray7_refract--Refraction, where rays bend when entering or leaving the "water".
 .zip or 
 .tgz
 (2012-02-13) |  |  ray6_ground--Raytrace everything, including the ground.  Virtually nothing left in C++.
 .zip or 
 .tgz
 (2012-02-07) |  |  ray5_reflect--True reflections, using a tail recursion style iterative bounce reflection scheme.
 .zip or 
 .tgz
 (2012-02-07) |  |  ray4_functions--Include shadow rays, and support multiple objects using a clean "ray_hit_t" structure.
 .zip or 
 .tgz
 (2012-02-07) |  |  ray3_multi--Raytrace two objects in a single pass.
 .zip or 
 .tgz
 (2012-02-01) |  |  ray2_hybrid--Combine raytraced and non-raytraced geometry via the depth buffer.
 .zip or 
 .tgz
 (2012-01-30) |  |  ray1_disk--Run a 3D ray-plane intersection calculation, including diffuse+specular lighting.
 .zip or 
 .tgz
 (2012-01-26) |  |  gl_disk--A simple fragment shader that draws a unit-radius 2D disk, centered at the origin.
 .zip or 
 .tgz
 (2012-01-24) |  |  nonlinear_vertex--Draw a simple gridded plane, divided into pieces suitable for manipulation in a vertex shader.
Used for HW0.
 .zip or 
 .tgz
 (2012-01-20) |  | 
HW1: Covers ray-object intersections.
Due anytime on or before Tuesday, February 7 on Blackboard.
 (modified 2012-01-27)
HW0: Covers GLSL and nonlinear vertex transformations.
Due anytime on or before Tuesday, January 31 on Blackboard.
 (modified 2012-01-20)
 |