This brief overview will discuss the implementation details behind Squish version one. Squish was created using C++ and openGL. Many hours of research went in to creating a user environment that would seem plausible for smashing Bender into roadkill and leave no witnesses; therefore, the backdrop we came up with emerged as a dessert. A large rectangular Polygon was texture mapped with an image of a desert and placed in the scene at the end of the viewport to create the illusion of being in the dessert. The road was created in a similar fashion wrapped with a texture map and positioned in the correct place. Additionally, the road texture was animated to give the illusion of accelleration.
The car is a basic hierarchical model. Currently a rectangular cube, we plan to install a model of a an old 1940s ford automobile in its place. As an animated hierarchical model, the wheels turn and the car follows. There are four basic controls to operate the car. The 'A' and 'D' key are used to steer, while the 'W' key is for acceleration and the 'S' key is the brake. The cars range of motion was limited in order to prevent the user from falling off the road.
The target is simply a bitmap image that was placed over a polygon. In order to give the illusion of transperency it was masked with a black and white version of the original and blended using openGL. A simple Billboard effect was used to force the image to face the camera as it comes closer to the car.
Colliding with the object (currently Bender), creates a large cartoon Blood Splatter effect. The collision was created by taking the distance between the center of the two objects and comparing the sum of their radii. If the distance was less than or equal to the sum, A collision occured. This is a simple collision and was used after researching several techniques including the sphere-plane test which I thought was too complicated for this simple situation. Eventually we have plans of implementing this technique as a way simulating the ground and then adding gravity. The Splat replaces bender temporarily if the car hits the object.
The camera was originally created and allowed to view the entire stage in 360 degrees. eventually We realized we needed to bound the camera to a certain range of motion So it now can only move within 50 degrees vertically or horizontally from the original look at point.
Begining The Game
Bender coming close. masked.
collision
Full Bender texture image
Bender Mask used for transperency
A simple texture mapping masking tutorial, useful for creating transparent texture maps like my bender image
A useful explanation of billboarding including several techniques
Thank you for visiting my Squish!