animation of a truck in 3d with hierarchy control/kinematics.
Project Outline
Brief Explanation of Inverse kinematics
Explanation of Global setting based inverse kinematics of the car wheels
Explanation of Interface.
Explanation of User controls.
Project Timeline/ Implementation Strategy:
There where 4 basic parts to this project:
1. Model or locate a Model of a 3d truck and Import the model
into openGl.
This portion of the project turned out to be one of the more complicated portions
because of the complexities involved in importing a 3ds file. Originally I got
a 3ds file reading on my home computer but when I tried to read it on the sun
machines I ran into some serious errors, and was unable to accomplish the task.
Rather then abandon the file I decided to try some other strategies in getting
the model imported into opengl on the sun machines. I learned a great deal about
the 3ds file format probably more then I would want to know. Eventually
I wrote a separate program at home to export 3ds files into a text document
of array declarations. This turned out to be successful although time consuming
because I had to manual look up the colors for each of the objects as well as
do some tuning in regards to where each object was placed and what not.
2 User controls.
right arrow -> turn front wheels Right
left arrow -> turn front wheels Left
forward arrow-> moves the car
back arrow -> does nothing
The interface has just your basic features necessary for operation of the vehicles surrounding and the vehicle itself. That it.
3. Create some surface with bumps in it.
This "terrain" the vehicle will cover, will start with one simple bump
and have it affect whatever wheel it runs into. Then will expand
it into a
random generating terrain of some kind.
4. the physics
This handle the four wheels independently the back two as one object and
the front two as another. Here I used an number of formulas to help get information
about the cars position and therefore each wheels position , I then use bilinear
interpolation to get the y values for each of the wheels thais was then tested
against some threshold and if it surpassed the threshold it would move the object
in that general direction. Furthermore it will "tilt" the vehicle if the force
is on one particular wheel.
In researching this project I have located a good deal of resource, almost
overwhelming amount :). I think I tired to stick to the more abstract papers
and pseudo code in order to get a better understanding of what I am
doing.
Links to more elaborate resources:
http://www.racer.nl/links.htm