Motivation
In this last assignment you are not being asked to add any new ray
tracer functionality. You are being asked to somewhat push your
current ray tracer and of course make sure it does all that has been
developed for the previous assignments.
You are to turn in a complete running system, along with all the
necessary model, material and driver files to render two scenes.
Scene 1 must satisfy some complexity requirements described below.
Scene 2 is your chance to make something
compelling/beautiful/striking.
More about Scenes
Keep in mind the goals for scene 1 and scene 2 are different.
- Scene 1
-
Here are a set of minimum requirements for Scene 1.
- Must contain at least two different polygonal models.
- One of these models must be rendered with flat shading, the
other with smooth shading.
- The scene must include non-zero ambient light and also at least
5 point light sources.
- The scene must contain at least 10 spheres, keep in mind some
may be small.
- At least one sphere must be semi-transparent such that
refraction is easily recognized in the rendering.
- Scene 2
- Scene 2 is your chance to be creative. Strive to produce a
rendering you would want to show off to friends and possibly have
added to the growing set of CS410 Masterworks on display outside
Professor Beveridge's office. As a concession to practicality, make
sure to build a scene that can be test rendered at a relatively low
resolution, for example 256x256 pixels, in a reasonably short time.
Then, if a high resolution (4096x4096) version is desired, it is
expected rendering may take considerable hours.
Submission
Submit a tar file via the CANVAS assignment page that includes:
Driver files (driver01.txt and driver02.txt) and model files
necessary to render scene 1 and scene 2.
PPM files generated for driver01.txt and driver02.txt. The
resolution of these images does not need to match the driver files
- it is recommended that your driver files have relatively low
resolutions so they render relatively quickly (but still high
enough resolution to see what is going on) while these PPM files
show your scenes in high quality.
A makefile if appropriate
README.txt file that explicitly contains (1) a command to compile
your program (2) a command to execute it and (3) the description of
your implemented feature.
If you are using C++, your executable should be named 'raytracer'.
If your are using java, the main executable class should be named
'Raytracer'. Notice the change in case for the first letter between
C++ and Java.
Reminder
There is no “late period”. It is essential to start earlier and
finish earlier. The program is due when it is due. All work you
submit must be your own. You may not copy code from colleagues or the
web or anywhere else. Cheating will not be tolerated, and will be
handled in accordance with university and department policy.