Project 3: TraceDate Assigned: Tuesday, 28 April 1998Date Due: Tuesday, 12 May 1998
|
RayTrace
is a program that constructs recursively
ray-traced images of fairly simple scenes.
scenes
subdirectory (the files with the .out extension.) You should use these
scenes to test that you've got the basics working.
Extension | H&B | Foley, et al. |
---|---|---|
Phong specular-reflection model | 14.2 | 16.1 and 16.2.5 |
Contribution from multiple light sources:
|
14.1, 14.2 | 16.1 (particularly in 16.1.5 and 16.1.6) |
Shadows | 16.12 and 16.4 | |
Reflection | 14.2 | 16.12 |
Refraction | 14.2 | 16.12 |
Phong specular-reflection model: | 3 points |
Directional Lights: | 1 point |
Point Lights: | 1 point |
Shadows: | 2 points |
Reflection: | 1 points |
Refraction: | 1 points |
Artifact: | 1 point |
----------------------- | -------- |
Total: | 10 points |
Add support for materials with arbitrary index of refraction.
Add Implement an adaptive termination criterion for tracing rays, based on ray contribution.
Add Implement spot lights.
Add a menu option that lets you specify a background image to replace the environment's ambient color during the rendering.
Implement antialiasing by adaptive sampling, as described in Foley, et al., 15.10.4.
Implement bump mapping (see Angel, 10.4; Foley, et al., 16.3.3).
Add texture mapping support to the program. An additional for adding a menu option for reflection (environment) mapping (see Angel, 10.3; Foley, et al., 16.12.1 and 16.6).
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).
Implement a more realistic shading model. Credit will vary depending on the sophistication of the model. A simple model factors in the Fresnel term to compute the amount of light reflected and transmitted at a perfect dielectric (e.g., glass). A more complex model incorporates the notion of a microfacet distribution to broaden the specular highlight. Accounting for the color dependence in the Fresnel term permits a more metalic appearance. Even better, include anisotropic reflections for a plane with parallel grains or a sphere with grains that follow the lines of latitude or longitude. Sources: Foley et al, Section 16.7; Glassner, Chapter 4, Section 4; Ward's SIGGRAPH '92 paper; Schlick's Eurographics Rendering Workshop '93 paper.
Variable extra credit for anything else cool you can think
up! Have fun!