|

Overview
This demo was
created for a games company so I could show my maths skills. I have used
OpenGL to render the entire scene, however I have not used any of the OpenGL
matrix commands, such as glRotated(.....) or gluLookAt(...) . This is because
I have written my own matrix class which has been used instead. The demo
doesn't look very impressive as it is only meant to show my maths
capabilities, it consists of various objects which jump and move about the
world. The source code for this demo will be available soon.
The task was as follows :
|
Create a SMALL demonstration application that moves a 'character' object in 3D
space such that it
appears to be 'jumping' between several 'platforms' at different locations and
heights. All objects
including the character may be primitive 3D shapes.
The character should turn to face the next jump destination, and orient itself
along the jump parabola
in every frame during the jump: i.e. it must construct the matrix representing
its own 3D transform
( combined position and orientation ).
You can assume that the character's own "Up" axis will never deviate more than
90 degrees from the
world "Up" axis.
GOALS
=====
1. Demonstrate understanding and use of Matrix and Vector Maths in 3D space;
in particular,
orienting and positioning objects and using vectors for querying relative
spatial configurations.
2. Demonstrate use of basic 3D physics. ( Newton's equations of motion )
3. Demonstrate clear C++ code design, layout and commenting.
GUIDELINES
==========
1. Do NOT just use built-in utility functions from libraries such as GLUT or
DIRECTX to
do all the maths. We want to see your OWN Matrix and Vector classes being
used, and methods
such as dot and cross products in particular. Use your own Vector methods for
all operations
on coordinates, rather than manipulating individual x,y,z values.
2. You can use any API for rendering, even GDI functions. We are not testing
your graphics
knowledge for this position. You can get a quick start with an OpenGL stub
from the internet
such as NeHe.
3. Collision detection is not compulsory. The character can just jump between
fixed points,
but must NOT pre-calculate its full jump parabolas. ( i.e. it should have a
physics-based
update during the jump, based on initial velocities that you calculate for
each jump ).
4. Human control is not necessary. The demo can just run on a continuous loop.
5. Keep each class in a separate file.
POSSIBLE EXTENSIONS
===================
1. Add a tracking camera that also constucts its transform ( i.e. a "Look At"
matrix )
2. Add characters that fly and bank into the turns.
3. Add more characters that chase or avoid each other.
4. Add some form of basic collision response. |
Screenshots
The following image is taken from the final version
Downloads
|
Version |
Date |
Type |
Link |
| 1.0 |
12-06-03 |
Maths Demo |

1.07MB |

|