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.
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.
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.
- OpenGL Terrain Generation - An Introduction - Vahe Karamian