![]() |
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!