 |
Due: Week 13 - Friday, 2nd November, 5pm.
Overview
Your major project is to create an OpenGL application that uses models
created in Inspire 3D. It should include the following:
- 3D objects made in OpenGL code (not loaded from external files).
- 3D objects loaded from an MD2 file created with Inspire 3D and QME
Lite.
- OpenGL text to give instructions to the user.
- Use of OpenGL features such as lighting, texturing, blending, etc.
- Keyboard and mouse controls so that the interaction is interesting.
- Rendered animation produced in Inspire 3D.
More Details
- Use OpenGL and/or GLUT functions to create objects for a 3D scene.
You should use transformations and the matrix stack to construct more
complex objects out of simple ones.
- You must create at least one animated MD2 model with at least 10 frames
and at least three states (you can use up to 20 frames in the QME Lite
version we have).
The scenes and frames in the MD2 file should have logical names.
The models do not have to be humanoid characters, but should be more
than trivial constructions. They must have less than 4096 triangles
(see lecture 18 for more
notes on constructing models for use in MD2 files).
- Provide one or more instruction screens with text to inform the user
of how to use your project (this is within the OpenGL application).
- Use the features of OpenGL we have learned (and which you have learned
outside class) to make your interactive scene as interesting and realistic
as possible.
- Both the keyboard and the mouse must be set up to perform some kind
of interactive control of the MD2 model(s) and maybe also other objects
in your scene.
It is up to you what kind of interaction you want - a game is perhaps
the easiest to visualise, and it could make use of the most interesting
interactions. You do not have to create a game, however.
You must have interaction which modifies the state of the model (for
at least three states), as per the code given in lecture
18.
- Create an animation appropriate for your interactive scene entirely
in Inspire 3D and render it as an AVI file (as in task 2). This should
then be included in your project as a start/end sequence (as you wish),
as outlined in lecture 21.
It should be at least 5 seconds in length (e.g. 75 frames at 15fps).
You may like to use the scene from your task 2, adding in the new model
you have created, if that would be relevant.
This animation does not have to be as well-constructed
as task 2.
You must have a commented section at the top of your main C++ file that
includes your name and assignment details.
Every function/procedure in your source code must be documented/commented.
You should also include any other relevant comments as necessary.
These are the minimum requirements for this task. You can include additional
features if you wish.
Not to have everyone going down this path, but as an idea of
what might be considered a good choice for your project, you could model
(pardon the pun) it on the second task and create a robot (MD2) which
you can move around a scene to find a bomb (both created in OpenGL).
You have a time limit (updated on-screen in OpenGL text), and if you
don't get it in time, it plays a pre-rendered animation of the robot
blowing up. When you do find the bomb in time, it does a little dance
(one of the MD2 scenes).
An extension would be to have different levels
with harder scenes and decreasing time limits, and bad guys who shoot
at you and you have to collect power-ups to stay alive and get time
extensions and ...
This possible project would demonstrate all of the required features
quite well. It would also be just a little bit of work, eh? Get busy...
Special Note
You have been provided with a decent amount of example code in this course
which is directly useful for the project. This should help greatly with
various parts, especially the model
loading and displaying the AVI file(s).
Although it has been provided for you, that doesn't mean you should just
use it without understanding it, and it doesn't mean you shouldn't change
it. Variable names, comments, how it works, etc. should all be modified
if necessary to suit your project code. Some of the code may even have
errors (not compile-time errors), or be written inefficiently, which you
should address. You will get marked according to the overall quality of
the code you submit, including the bits that were provided for you.
Documentation
Along with your electronic project, you need to draw up written documentation
(about one page), saved electronically (Word document preferred) on your
CD as follows:
- Executive Summary - what is your project and why did you create it?
- Instructions - exactly how can your program be operated?
- Describe any features that you have used that were not learned in
class.
- Acknowledgements - what code, textures, etc. did you get from other
sources.
Submission
Hand in your assignment on a well-labelled CD (on the case and CD itself),
containing all necessary files before the due date to your tutor's pigeon
hole in TG128, or to Lindsay in the last CP2060 lecture on Friday, 1pm.
You must include all necessary files, including a working, pre-compiled
Windows executable file. The code should compile and work in Visual C++
on the lab computers at JCU.
Place these files in a main directory called SurnameFirstNameCP2060.
You may have subdirectories within this main directory, but do not
include any unecessary files within here. Previous versions of code,
Inspire models you didn't use, etc. should all be removed from the main
directory.
Necessary files include:
- all of your source code and workspace/project files
- all of your Inspire models (.lwo)
- your Inspire scene for the rendered animation (.lws)
(your scene should load from the CD without asking
for replacement objects for ones it can't find)
- the rendered video file
- MD2 model file(s) and texture(s)
- documentation, preferably in Word (another easily-accessible format
is acceptable)
You should save your file as Documentation.doc
in the main directory.
- anything else that is necessary to run the project, or that needs
to be looked at for marking
Onwership of source code
The source code for this assignment remains the intellectual property
of the student. I would like to keep examples of quality projects for
subsequent years. Please indicate on your assignment if keeping a copy
of your project is not acceptable.
(This has changed since first posted, as I would
like to keep copies of source code as well.)
Backups
You must keep a backup of all of the components of your assignment for
at least 30 days after submission (forever is better). On rare occasions
disks fail as they are being marked.
Marking
You will be marked on all of the 6 main points above as well as documentation.
Most Important:
- OpenGL/C++ interaction (completeness & complexity)
- OpenGL/C++ code quality (comments, variables, etc.)
- Inspire 3D model construction for MD2
Less Important:
- Inspire animation for rendered AVI
- QME MD2 file creation
- Documentation
The actual marking scheme is
given here.
|
|
 |
 |
Announcements |
 |
|
This is your major project, worth 45% of your total assessment
in CP2060.
Due to the late release of the assignment details, the
due date is the last day of semester. This has been changed
from the original time set (week 12). Don't be confused
about when it's due.
|
|
|
Subject Coordinator: Lindsay
{w} | {e}.
Last Update:
November 1, 2001
|
 |
|
 |