[ Aitana Neves Da Silva (SPH) – Arnaud Lagger (SSC) ]
The goal of this project was to model in 3D a helicopter and its environment in openGL. As the helicopter had to be in a specific scenario, we chose to build an emergency helicopter in a mountain environment and the goal is to retrieve an objective to the base.
The surface is a composition of triangles on the XZ plane, the Y coordinate being a random value between chosen values. On the top of this, two flat areas are integrated: one is the base (where the helicopter takes-off and where it must return after having caught the objective) and the other one is where the objective lies.
A snow texture is applied on the surface to enhance the realism.
The sky is simply a big textured sphere with a low number of polygons.
The helicopter was entirely made by hand (like every others components by the way) and consists of two ellipsoids (the main part), one cylinder (the tail part), 4 boxes and one sphere (main rotor), one box (tail rotor), four cylinders ans two boxes (for the lower part).
The rotors rotates according to the power we control with the keyboard.
A texture made by hand was added on the ellipsoids.
As the helicopter can move frontward, backward, leftside, rightside, spin clockwise and spin counterclockwise, it is difficult to stay in hover (staying in the same position). So we added a trick to allow it hovering easily. If we don't touch any key, the helicopter automatically gets progressively to a stable position in order to hover. This adds more realism to the helicopter motion and helps controlling the flying.
Considering physics, we limited the movements of the helicopter to realistic values. For instance, it is impossible to go faster than 300 km/h, and if we rotate too much, the helicopter will fall. Moreover, it is not possible to go outside of the range of the landscape, neither to reach the sky.
All the movements are processed according to the weight vector of the helicopter. The angles of the power vector determine the X, Y and Z movements.
Apart from the surface, the sky and the helicopter, we added some objects to enhance the beauty of the environment. At the base, an heliport is drawn on the surface and two buildings near the heliport represent the base.
The surface is randomly covered by trees, made by revolution.
Finally, the objective is a textured sphere.
There are 5 types of cameras:
| q | exit the program |
| Arrow up | frontward motion |
| Arrow down | backward motion |
| Arrow left | leftside motion |
| Arrow right | rightside motion |
| Page up | increase the power of the main rotor |
| Page down | decrease the power of the main rotor |
| - | spin (clockwise) |
| + | spin (counterclockwise) |
| F1 | behind view |
| F2 | cockpit view |
| F3 | from the base view |
| F4 | pursuit view |
| F5 | panoramic view |
| Home | zoom in |
| End | zoom out |
| f | toggle fog |
All the rendering commands are directly accessible via the context menu.

The helicopter takes-off at the base

The helicopter flying above the base. We can appreciate the textures.

The helicopter reaches the objective.

View in wireframe.

We can switch the illumination to a fog mode.
You can download here the game (setup) or the sources. The sources are a Visual .Net project, although you can import the C++ files on your favorite platform.
This project was interesting to do, as we both learnt openGL by practice and we enjoyed creating this helicopter game even we had spent a lot of time to achieve this result.