CSS 451: Final Project Specification
Assigning Date: Jan 13, 2008
Due
Times: Refer to our course web-site.
NOTICE: You can bring a thumb drive (or CD) with compiled exe source to class on the demo day. Just make sure your exe is compiled based on the lab
machines.
You will combine the 3D mathematics/interactive knowledge/techniques learned in this class to design and implement a real-time 3D interactive graphics application. Your 3D application must contain a state. The purpose of your application is to reflect this state graphically. Through a friendly user interface, you will allow your user control the state of your application. In return, your application will react to the state change by updating the graphical representation in real-time. For example, at this point we have acquired sufficient knowledge to implement a simple 3D maze simulation, where the user would navigate a 3D object through a 3D maze you provided. In this case, the 3D object and the environment will be the state of the application. Through a friendly user interface the user would be able to control the direction and speed of the 3D object. The application would update the position and velocity of the object continuously in real time. You are free to specify and design any application you like, given the technical constraints as specified.
GROUP WORK: You should form groups of 2 or 3 members.
3-person groups must implement
a multi-user (at least 2) application or include substantial extra credit
materials. You are highly discouraged
from working alone, but you can if you insist. You will not receive any extra credit for working alone. In the
contrary, single-person projects are expected to have similar quality. This quarter we are going to try something
new, your final projects into three tiers
according to:
§ technical complexity
§ completeness, and
§ general aesthetic
All projects will receive grade according to
the tiers that they are classified in.
Project Proposal
(1%):
Describe your application, you must include
the followings:
1. Describe how it satisfies the above technical
requirements. Talk to me if your group would like to implement something
completely unrelated to the above.
2. Include sketches of hero and supporting
objects.
3. Overall application design, including GUI
support, and camera view window locations and purposes.
Project
Concept Demo (4%):
Skeleton structure for your application, the
followings must be included:
1. A running application;
2. 1%
- Hero and supporting object
placeholders (ok if details are not ready use a placeholder meshes) in the
world;
3. 1%
- GUI control (ok if
placeholders, but, your user interaction should be completely designed. All
keyboard mappings should be done, your demo should include echoing of proper
key pressed [e.g., if “w” sends your hero forward, you should at least echo “w”
is pressed somewhere.]).
4. 1%
- All camera view windows with
proper cameras displaying the world (ok if technical details does not function
correctly, e.g., a hero-cam that does not follow the hero yet is ok, but a
camera with view must be shown).
5. 1%
- You must include the usual clean source code zip file, and a separate folder containing all
necessary files (but nothing extra) so that I can double click and test your
demo.
NOTE: we will not dedicate lecture time for this
demo. Concept demo do not need to
include in-application logic (e.g., hero does not interact with supporting objects, a supporting object does not follow the hero, etc.)
Project
Progress Demo (3%):
This is when you will show your
work-in-progress to the class. You will run your demo and explain to the rest
of the class what your project is about. Included should be:
1. Completed Hero and supporting objects
(including textures and all the controls);
2. All cameras in all views should be completed
and functioning;
3. Most importantly: Demo and highlight how pixel/fragment shader(s)
are featured in your application.
By this time, you should be working mainly on
in-application logic. This is the
evaluation form we will use.
Final Project
Report (2%):
This is the final documentation of how to use you’re the system you have implemented. This document should detail of how to use your system, including mouse buttons and/or keyboard commands.
Final Project
Demo (3%):
Each group will have about 5 minutes to describe your application and demonstrate all the functionality of your system. One percent of the credit will come from your peers and the rest will come from me. You will be graded based on:
1.
Organization of the presentation.
2.
Clarity of describing your application.
3.
Completeness of showing all functionality.
This is the evaluation form we will use.
Final Project
Correctness (20%):
Finally, I will test run your application and grade it based on completeness and correctness of your system. Here is how credit will be distributed:
This is not a joke. If your final project
looks even remotely similar to our
class examples or MP solutions a significant portion of the grade will be
deducted!
WARNING: Since all the
source code to the mp’s are given to you, if your final project is a simple
combination of all the mp’s where most/all of the above technical
specifications are met you will lose a significant amount of the credit for the final project.
Extra Credit 2%
You can get up to 2% of extra credit by being creative
and resourceful. Notice, this
is 2% of the final score in this class!! Examples of what you can do include:
a. Saving/Retrival. Your application must allow the users to save and re-load their work to files.
b. Selection. Your user can interactively activate/deactivate appropriate visible objects.
c. Advanced Effects: shading, reflection, etc.
There are numerous possibilities for extra credits. Please talk to me if you have other ideas. I will tell how much your idea worth J.
In all cases, you are expected practice what you learned in the Technical Writing class and submit documents with complete and correct English sentences. I will not, and am not qualified, to correct your grammar or presentation style. If I cannot understand what your writing, your will not receive any credit.
Please e-submit all your work, including documentations (proposals and final reports). This is so that I can post your work for future students to look at. If possible, I prefer pdf for documentations. If you can’t build them, Word is ok.
Note: Having 3D objects moving around in a 2D world, e.g. driving a 3D car around a flat
race track is not a true 3D application. The
positioning/orientation of your objects must be truly
in 3D space. If you find it difficult to come up with ideas, please talk to me.
If you have a great 3D object in 2D world idea, and absolutely want to do it,
then, we can figure out what else to include.
Your final project will count 33% towards your final grade for this class.