Project Report cs161


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