| Date Assigned: | Friday, May 16th |
| Date Due: | Wednesday, June 4th |
| Artifact Due: | Friday, June 6th |
Trace is a program that takes Inventor scene files as input
and generates ray-traced images.
| Extension | Angel | Foley, et al. |
|---|---|---|
| Phong specular-reflection model | 6.3 | 16.1 and 16.2.5 |
Contribution from multiple light sources:
|
6.1, 6.2 | 16.1 (particularly in 16.1.5 and 16.1.6) |
| Shadows | 16.12 and 16.4 | |
| Reflection | 6.4 | 16.12 |
| Refraction | 6.4 | 16.12 |
+
from the following list. You can add items to this list by
obtaining approval from the professor or one of the TAs.You are also encouraged to go beyond the minimum number of bells and whistles by implementing more than one from the approved list, or by thinking up your own unapproved extensions.
Add texture mapping support to the program. One of the spheres in spheres.iv has a wood texture defined for it.
Implement light attenuation due to fog, smoke, and haze (all three). See man page on SoEnvironment for details. You can use
SceneViewer (or edit the .iv file directly) to specify fog color, type (fog/smoke/haze), and visibility
distance in a scene (.iv) file.
for one,
for both
Add a menu option that lets you specify a background image to replace
the environment's ambient color during the rendering, and/or add a
menu option for reflection (environment) mapping (see Angel, 10.3; Foley, et al.,
16.12.1 and 16.6).
Implement antialiasing by adaptive sampling, as
described in Foley, et al., 15.10.4.
Implement a more realistic shading model than Phong's (see
Foley, et al., 16.7).
Implement bump mapping (see Angel, 10.4; Foley, et al., 16.3.3).
for first,
for each additional
The ray intersection routines provided by
Inventor are not optimized for a ray tracer. Currently, the starting point
program provides a customized intersection routine for Spheres. Write your
own object-ray intersection function to handle one or more of other
Inventor object types such as cones, cubes, cylinders, or Quad-Meshes
(as created with Sweeper).
Implement solid textures or some other form of procedural texture
mapping, as described in Foley, et al., 20.1.2 and 20.8.3.
Extend the ray-tracer to create Single Image Random
Dot Stereograms (SIRDS). Click here for a brief
explanation of how to view them, and click here to read a paper on how to make them. This page may also have some
helpful information.
for first,
for each additional
Implement distributed ray tracing to produce one or more or the
following effects: depth of field, soft shadows, motion blur,
or antialiasing (see Foley, et al., 16.12.4).
Implement ray-intersection optimization using either hierarchical
bounding volumes or spatial subdivision (see Foley, et al., 15.10.2).