CSE 872: Project 1 - Baseline understanding
This document describes the requirements for Project 1 in CSE 872. The
project will be due Monday, October 6, 2008 at 11:59pm. The project is an individual project.
| I call this the baseline project. It's mainly to
make sure everyone is on the same page as far as being prepared for this
course. What I expect is a project that demonstrates that you are up
to speed on basic OpenGL (or Direct3D if you must) and ready to proceed in this
course. |
Your assignment is to create a simple interactive graphical application. Your
program can be a game, a drawing application, or just about anything you
can think of that meets the requirements listed below. The basic idea is
that you can create a program in OpenGL that does something interesting and that
you are familiar with the basics you need for such an application. If
you're rusty, this is a good chance to catch up a bit.
You must speak to me about what your project will be prior to starting.
I'll let you know if I think it's sufficient for this project. I will also
be open to bending the rules if the project warrants it and makes up for it in
other ways.
Note: If you prefer to do this application in Direct3D (or any other
reasonable system) that is okay, though you must be able to provide me with a
Visual Studio project that will compile and run on my machine (Visual Studio
2005, Windows XP,
DirectX 9.0). Do not submit a project that requires graphics extensions
specific to some graphics card.
Your project must exhibit the following characteristics:
- 3D. Your project must be 3D! No 2D projects will be
acceptable.
- Scale. You must declare a scale for your project and stick to
it. Your units must mean something and it must be obvious that your
units mean something. No arbitrary boxes in various arrangements for
example. There must be something "familiar" in your scene to indicate
your scale makes sense.
- Objects with holes in them. Something in your project must
have a hole in it.
- Interaction with the mouse. You must have some interaction
using the mouse beyond just changing a camera angle.
- Gravity or some reasonable related force.
- Independently moving objects. At least two things must move
by themselves.
- Texture mapping. You must select and load at least 4
textures. I don't care where you use them, as long as they are
actually used.
- Lighting. You must utilize at least two
lights and the lights must be in the scene, not at infinity.
- Realism. Something about your project should be trying to
look real, not "computer-graphicy"
- Curved surfaces of some kind.
Pitfalls
When this project is graded, we will be specifically looking for the
following problems that you should avoid:
- Missing polygons.
- Overlapping polygons at the same depth.
- Bad vertex normals (yes, I know how to check them)
- Objects which we can see through when we should not be able to see through
them.
- Building your entire scene from boxes will result in a 50 point deduction.
No more than 50% of your scene can be built from boxes.
- Time must make sense. If your object travel 60MPH or the speed
varies on different machines, I'll count off.
- Seams that do not match (lighting and textures).
- Redundant embedded polygons. I have no problem with a few of these,
but if more polygons are embedded in an object such as your floor than are
shown, we will be penalizes.
- Redundant loading or creating of data structures. Especially don't load your textures
over and over again.
- Large polygons that prevent the lighting from working properly.