CS 312: Computer Graphics -- Assignment 6
Advanced Computer Graphics
Due
Wednesday, December 15, 2010 by
11:59pm
Due
Friday, December 17, 2010 by
11:59pm
(No late submissions or redos will be accepted for this assignment)
In this assignment, you have your choice of one of the following graphics
projects, or you may decide to create your own (you must talk with me
briefly beforehand if you choose this route). Your project may be
based in OpenGL, in RenderMan, or may use neither of these tools and be
implemented in C/C++. You may also choose to extend your ray
tracer implementation to achieve one of these.
- Choose an actual object and model it as realistically as
possible. You should strive to model all aspects accurately,
including the object's geometry, how the object interacts with light,
the material properties, surface textures, etc. Your object must
have at least one component that is a more complex surface material,
such as the textured skin of an orange, a label wrapped around an
object, or the veining and texture of a leaf. It is better to
choose a simple object and model it realistically than to choose a
complex object and have it look unrealistic. Submit several
photographs of your real object and at least 3 rendered images (or an
OpenGL interactive program) of your object in realistically lit
scenes. A large portion of your grade will be based on whether
the object looks realistic.
- Implement a procedural shader to represent a material
realistically (e.g., grass, rock, a planet viewed from space,
etc.). Apply your shader to a realistically lit scene
demonstrating its use. (You may choose to apply the shader to
objects in one of your previous projects.) Submit at least 3
rendered images (or an OpenGL interactive program) of your shader from
different perspectives.
- Implement a particle system to generate a phenominon of your
choice (e.g., fire, water drops, dust, a galaxy, pollen blown from a
flower, snow, hair, grass, etc.). Submit an program that
simulates the phenominon in real-time or multiple images of your
particle system in action.
- Implement an animated scene using OpenGL (e.g, boids flocking
around a landscape, trees blowing in the wind, a deformable mesh, etc.).
In a brief 1/2-1 page writeup (in either PDF or plaintext format),
describe your project and any features or parameters associated with
your demonstration. Submit a brief executable shell script
(called "assn6.script") that either demonstrates your interactive
program or generates each of your renderings automatically. Be
sure to include this demo script with your
submission.
Start early. As described in the syllabus, this project is worth
15% of your final grade.
Submitting the Assignment
Submit your C or C++ program, all source code, the Makefile,
appropriate
images, and any
other files necessary to run your project. I must be able to type
make
on the CS systems and have it produce an executable
for grading. Name your executable "assn6".
In your comments, include information about the computer platform
(hardware and OS) you used to develop your program, and be sure to
include additional comments as needed to describe your code. A
good rule of thumb is that someone should be able to remove all code
from the file and recreate a rough semblance of the result from your
comments.
If you developed on somewhere other than the cs systems, be certain
that your program runs correctly on the cs systems where it will be
graded. Leave time for this step!
Place all submitted files into a directory named LastnameFirstname-Assn6.
Then
create
a
tar
archive
of
that
directory,
such that the tar file
expands to the directory (not a bunch of files). Copy that tar archive
into ~eeaton/submit/cs312/username/ (where "username" is your
cs system username) to
complete the submission.
Be certain to use the names specified above for the directory and tar
archive!!
Extra Credit Opportunities
Extra credit may be given, at the discretion of the instructor and up
to +20%, for projects that are either exceptionally challenging or show
exceptionally realistic, stylized, or entertaining scenes.