image 1 0f 6 thumb
The Heightmap Hovercraft project covered the topics of terrain generation and moving objects over the generated terrain. Heightmaps were used to create the terrain and the data used to create the heightmap dictated the height of objects moving across the terrain. This project also covered map texturing; every object in the project is textured. Each texture or object also has a material for lighting purposes.



Gained further knowledge in heightmap terrain generation. To form the terrain, the program used a bitmap image to extract y-axis locations; furthermore, the white portions of the image indicated high y values while dark portions of the image indicated low y values. This data was used during the process of creating the terrain triangles.

The heightmap data was also used to indicate the height value of the hovercraft. As the hovercraft moves along the x/z plane, the algorithm would look up the corresponding y-value and add a constant to ensure that the craft would always stay above the ground.

Problem Area: For heightmaps that had large varying y-values, it was hard to ensure that the hovercraft would always stay above ground. This is because there are more steep slopes. This could have been fixed if the hovercraft rotated such that it would always be parallel to the terrain surface.

Texture Mapping

Gained further knowledge in texture mapping. The entire scene uses texture maps. Texturing the tree was the most difficult because it required discarding fragments such that the leaves did not look like planes.

Collision Detection

Gained further knowledge in collision detection. The only colliding obects in the scene are trees and rocks. Since the hovercraft would always be on a single plane, I decided to compare distances between two points of x and z plus some constant value. Visually, the collision detection bounds would look like a cylinder with y values going to "infinity". That is, if the hovercraft someday decided to fly over the tree, it would still be "colliding" since there are no constraints on the y values.


The World

image 1 0f 6 thumb
image 2 0f 6 thumb
image 3 0f 6 thumb
image 4 0f 6 thumb
image 5 0f 6 thumb
image 6 0f 6 thumb


image 1 0f 3 thumb
image 2 0f 3 thumb
image 2 of 3 thumb


image 1 0f 7 thumb
image 2 0f 7 thumb
image 3 0f 7 thumb
image 4 0f 7 thumb
image 5 0f 3 thumb
image 6 0f 7 thumb
image 7 0f 7 thumb