CMSC 435/634: Introduction to Computer Graphics
Assignment 1
Simple Scene
Due February 14, 2012
Now with color coded updates, new....old.
The assignment
Use Pixie (a free Renderman compliant renderer)
to model and render a still life representing your hobby.
The scene should occupy a
volume realistic to the items included.
The items should be realistically proportioned relative to one another and
any other context in the scene.
At least one of your items
should be not based on a sphere, cylinder, or other simple primitive. The items
can be made of any
material you choose, but should be made of different materials. Make them as realistic
as possible. Your scene should be illuminated by specific lights (i.e. don't use a
constant surface or ambient light source). Select a viewpoint that shows the scene
from an oblique angle (i.e. not aligned with any of the coordinate axes).
Using Pixie
Read some tutorials available on the web on using Renderman and Pixie.
You might try fundza
(for various renderman topics) and Pixie Wiki
(for a information on running the Pixie programs). You may also find chapters 1-3 of The Renderman
Companion (in library or my office) and the Renderman Specification
(linked off the course web page) to be useful. Pixie runs on a variety
of platforms (including PCs running Linux, Windows, Mac OS X). Pixie is
currently installed on gl, at /afs/umbc.edu/users/r/h/rheingan/pub/435/pixie-2.2.4
Your development cycle will go something like this:
source /afs/umbc.edu/users/r/h/rheingan/pub/435/pixie-csh
(or pixie-bash for bash users)
repeat
edit hobby.cpp
make hobby.tif (here's a sample Makefile)
display hobby.tif (you must be running in an X-terminal for this to work)
until done
Strategy
Incremental development will probably result in the most efficient use
of your time. For example, first try to get your program to draw a
single simple object -- perhaps a surface to rest your items on.
Once that's working to your
satisfaction, add a simple object (maybe something based on a sphere)
on top. Then add some
more items (remember to make at least one using something
other than a sphere). Now line up a good view and lighting. Once you've
got the basic setup, keep refining to make it more realistic until you're satisfied
or you run out of time (whichever comes first).
Some debugging tips
-
If your image is blank, check the camera position and direction. It
may be pointing away from your scene.
-
If some primitives are missing, check their orientation (the order in
which you have specified the vertices). Polygons are transparent when
viewed from behind.
-
If some primitives are still missing, check the lighting. Surfaces on
which no light falls will be black, just like the default background.
-
If you're having trouble keeping everything straight, give each item
a different color until you've got them behaving properly. Then you
can change the colors to whatever you want.
Grading
Eighty percent of the grade will be for turning in a working program
which meets the minimum specifications (correct objects, view, and
lighting). The remaining twenty percent will be for realism and creativity
(interesting objects, advanced lighting, textures, etc.).
What to turn in
To turn in this assignment you will need to check in your project
files to your class CVS repository. Refer to
the class CVS instructions for submission
details. An overview:
- Use
cvs checkout
to create your own working
directory, cs435work
. cs435work
will
contain subdirectories Proj1, Proj2, Proj3, Proj4, and Proj5, in which
you will store your files for each project.
- Copy your project files to your
Proj1
directory.
- Use
cvs add
to place the files that you need to
submit under revision control. This includes the C++ program that
generates your image, the image it creates, and the Makefile that
controls compilation. When you commit, only files under revision
control will be submitted!
- Use
cvs commit
to check in any modified files back
into the repository.
Never work directly in the repository. You should never edit or write any
files to the
directory /afs/umbc.edu/users/r/h/rheingan/pub/cs435s12/username
,
and you should never copy any files from that directory. The files
within that directory have names ending in ,v
and contain
internal CVS metadata.
You may modify
the Makefile from the example Makefile, but
we must be able to run your submission on the gl systems to
grade it. Your comments should include information about which
computer platform (HW and OS) you developed your program on.
Additional comments may help your grade in cases where your program
does not operate entirely correctly (since they can give me insight
into what you were trying to do). In any case, your programs are
expected to be robust and easy to understand. Your comments MUST
include a description of help you received or a statement that no help
(beyond the text and course staff) was received. If you do not include
a statement about help, your project will be returned ungraded.
Working at home
If possible, don't. We test things out on the
university computers and may or may not be able to help you if things
don't work right for you at home. If you do work at home, your final
submitted version must be able to run on the gl machines and must be
electronically submitted there.
If you absolutely must work at home, here are some things you may
try:
- Image display at home
- Instead of "display hobby.tif", copy hobby.tif to your home machine and
display it there. TIFF image viewers exist for every platform out
there (even windows). If you cannot find a working TIFF viewer, you
can convert to another format on the gl machines:
convert hobby.tif hobby.jpg
will convert from TIFF to JPEG. Convert keys off of the file extension
and understands a huge number of image file formats.
Two suggestions for free viewers that run on many
platforms (including windows and linux) is GIMP (from www.gimp.org)
and ImageMagick display (from www.imagemagick.org). GIMP is a
full-featured image editor (and a great program) that happens to also
be able to read and write many image formats. ImageMagick is a set of
simpler tools for image display and conversion (including the convert
program mentioned above).
You can download your own copy of
Pixie.
It seems to install simply and reliably (we've tried on linux
and OSX), but we can't help you find problems if it doesn't (since
they are likely to be related to your particular OS configuration).
- Compile at home
- The Makefile we provided may not help you here, except for general
guidance. Simple RenderMan C files should be quite portable, but allow
some time to back-port before submission if you have any #includes
beyond ri.h. You will need to figure out from your RenderMan
documentation how to compile a RenderMan C+ program to either produce
RIB or render directly.