Ray Tracing, Version 5.3
Day #18

Goal: Ray trace a scene where

  • the only objects in the scene are generic spheres, planes, squares, tapered cylinders, and cubes.
  • the objects may have been translated, scaled, and/or rotated with respect to an axis
  • in addition to color, the attributes of each object may include material coefficients for diffuse, specular, ambient color
  • in addition to material attributes,
    • all the objects may be textured with a 2D image
    • all the objects may be textured with a 3D generated texture, such as wood and marble
  • the images are defined in ppm formatted files
  • multiple lights may be placed in the scene
  • each light has a diffuse, specular, and ambient component
    • each light may be
      • positional, specified by postion
        • positional spotlight, specified by
          • position
          • cutoff angle
          • spotlight direction
          • spot exponent
      • directional, specified by directional vector
  • the light may be attenuated, specified by
    • kc, constant coefficient
    • kl, linear coefficient
    • kq, quadratic coefficient
  • a value for global ambient light may be assigned
  • shadows are correctly rendered, including on textured surface
  • descriptions of the objects, lights, and camera, as well as the names of the image files, are read in from a file, using your own scene description language
  • value for backgroundColor is now read in from the scene description file, using your own scene description language
  • the ray tracer correctly handles reflections
    • value for maximum recursive depth (for calculating reflections) is read in from the scene description file, using your own scene description language
    • value for "shininess" of an object (0.0 to 1.0) is read in from the scene description file, using your own scene description language
  • the ray tracer correctly handles the most basic transparencies (no shadows, no intersection of transparent objects):
    • value for index of refraction (refraction) is read in from the scene description file
    • value for transparency (0.0 to 1.0) is read in from the scene description file
  • the ray tracer uses the Cook-Torrance Shading Model
  • the ray tracer uses extents to check intersection with the tapered cylinder
  • the ray tracer uses a specific boolean difference operation to construct a specific compound object; for example, a wall with a window cutout.

 

Ray Tracing Tools: