|
Class Assignments
Advanced Computer Graphics II (Ray Tracing):
CS6620
Peter Shirley
Spring 2002
Jason Waltman, MS Graduate Student
School of Computing
University of Utah
My classmates' projects can be found
here.
|
|

A Basic Ray Tracer A basic ray tracer with
support for sphere intersections only. No shadows, no
lighting. Reads model from file that includes sphere
location, radius and color. |

Click to see more.
|
|

Triangles, Lighting, Shadows and Viewing...Oh My!
Added support for triangles, lighting of
Lambertian (total diffuse) surfaces, shadows, and viewing to the
basic ray tracer of assignment 1. Viewing is accomplished
through program command line arguments: eye point, look-at point,
up vector, and field of view. |

Click to see more.
|
|

Bounding Volume Hierarchy
Implemented a hierarchal data structure based
on bounding volumes to shorten render time of a large number of
primitives. After this code change, I can render a million
spheres in under one minute where a brute force method would take
hours to complete. |

Click to see more.
|
|

Marble Image
Here, a marble-like effect is created using a
solid texture generated by a noise function from Ken Perlin. Different
marble effects are possible by varying the parameters: scale,
period, distortion, and octaves, which are input file arguments
that define marble textures. |

Click to see more.
|
|

Image Texture Mapping
Instead of using 3D procedural textures as in
the last assignment, here textures are image files that are mapped
onto geometry based on specified texture coordinates. |

Click to see more.
|
|

Glass & Mirrors
"Fun" used to be marble and texture maps.
Not anymore. When you throw glass and mirrors into the
picture, it's a whole new ballgame.
|

Click to see more.
|
|

Instancing
Instead of modeling, for example, an ellipsoid,
we can create one by simply rendering a sphere with some
transformation matrix applied to the rays that hit the it.
"Instances" of objects may be scaled, rotated, transformed or any
combination of these.
|

Click to see more.
|
|

Antialiasing
No more "jaggies"! Up until now, all the
images produced by my ray tracer have been created by taking only
one sample per pixel. Since pixels are arranged on a square
grid, this undoubtedly creates stairstep-like artifacts on
diagonals, curves, and areas with subtle detail.
Antialiasing attempts to solve this problem.
|

Click to see more.
|
|

Soft Shadows & Fuzzy Reflection
Let's face it, the real world is not made up of
entirely point light sources and perfect reflectors. Here,
we add an imitation of an area light source for more realistic
shadows, and also the ability to perturb object normals to give
softer reflections.
|

Click to see more.
|
|

Depth of Field
Here, we imitate a real camera by hacking a
thin lens from our ray tracer viewpoint. "Depth of field" causes a certain
z-direction of an image to be in focus, while the rest will be
slightly blurry, based on the size of the aperture (lens).
|

Click to see more.
|
|

Motion Blur
Continuing with the real camera model, we allow
objects to move over time by specifying a start and end point, and
start and end times. By giving the renderer a shutter speed,
we will be able to see the motion of an object during the time the
"shutter" was open.
|

Click to see more.
|
|

Final Project
One cool image to round out the semester.
Uses most of the ray tracing features implemented throughout the
semester, but not meant to be a survey. Nothing new was
added.
|

Click to see more.
|
|

Downloads
Download the "Ulmo" ray tracer renderer used to
create the above images. Included with the executable is a
manual (in PDF format) which describes the scene description
interface, example scenes, and texture maps.
You'll need an image view that can view PPM files. I use
IrfanView
or SlowView. |

Ulmo Ray Tracer Package
with example scene
descriptions and models
9.44 MB

Ulmo User's Manual Only
77 KB
Compiled for Windows operating systems only.
Optimizations for Pentium Pro or better processors. May not
work on weaker processors.
|
 |
 |
 |
|
email
at jasonwaltman
dot com |
 |
|
(c) 2000-2007 jason waltman |
|
|