Assignment5 - Ray Tracing: Lighting
CS5600 - Introduction to Computer Graphics
Due Friday, 21 April 2006, 23:59 hours
Overview
This project builds on your previous assignment to add lighting to your ray
tracer.
Project Requirements
The following are requirements for the project:
- Create a Scene. This scene can be the same as the previous
assignment EXCEPT: one of the spheres should be represented as a parametric
equation and the other should be represented as a tessellated polygon. A
recommended tessellation is an octagon and a point in both z directions. The
following points define the basis for a suggested polygonal representation of a
unit sphere: (1,0,0) ,(√2/2, √2/2, 0), (0,1,0), (-√ 2/2,
√2/2, 0), (-1,0,0), (-√2/2, -√2/2, 0), (0, -1,0),
(√2/2, -√2/2, 0), for the octagon and the points (0,0,1) and (0,0,
-1) as front and back. The scene should have in addition to the two spheres, a
flat polygon.
- Phong shading. Use Phong shading on the two spheres.
- Gourad shading. Use Gouraud shading on the polygon. Each
corner of the polygon should have a unique color to properly demonstrate this
type of shading.
- Save and Submit Images. Create at least one image generated
by your ray-tracer demonstrating Phong shading, as well as an image
demonstrated Gourad shading
- Documentation: Briefly explain what your program does and
how to operate it. In addition, describe all data structures, major functions,
and the program's flow of control. Also document any known bugs and any areas
of the assignment you had problems with.
- Extra Credit You may implement whatever additions to the
ray tracer you wish. Suggestions include attenuation, shadows, motion blur,
glass, metal, participating media, and texture mapping, as well as other
suggestions found in the notes and book. Be sure to submit images that nicely
demonstrate your improvements to the original ray tracer and relate in the
documentation the commands to reproduce the images that you create as well as a
full description of what you did and how.
Turn in all your code and documentation using submit into the
directory called assign5Linux for Linux assignments or
assign5Windows for windows assignments (i.e. submit cs5600
assign5OS file1 file2...). Your code should be written in
C/C++, however you may choose to develop on Windows or Linux. Be sure to hand
in your MSVC project or your Makefile and that there are no problems running
your code.
Resources
Here are some example images to of what is
possible with ray tracing.