Project 3: TraceDate Assigned: Monday, November 10, 1997
Date Due: Monday, November 24, 1997
Artifact Due: Wednesday, November 26, 1997
Traceis a program that takes Inventor scene files as input and generates ray-traced images. You can create images useint Trace from the Inventor models that we provide for you, or you can use the vrmltoiv converter (located in /cse/courses/cse457/bin) to convert your articulate model from VRML to Inventor.
|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|
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.
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.
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 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).