Helicopter Simulator - Downloads

Application only

C++ Source Code (Win32)

Build Instructions

  1. These build instructions are for Visual C++ 2005 - Express Edition, although other versions shouldn't be much different.
  2. Download and unzip the 3DS File Format Library
    This library is needed to import models in the 3DS file format. You don't need to do much with this; unzip the files and copy the lib3ds-120.dll DLL to the projects Debug and/or Release directory for the simulation project.
  3. Open Visual Studio and define the include directories for lib3ds and any other libraries you will use.

    Visual Studio Options
  4. Download and Unzip the source code.
  5. Try building the project.
    If you have any problems contact me and I'll try to help out

Importing 3DS files

If you don't like the 3DS models I've used, then change them. There is one special thing you will need to do before using a 3DS model in this application, and that's correctly size and orient the model.

3D Studio Max, 3DS files, Helicopter Simulator, C++, OpenGL
Figure 1. The Gazelle_LowPoly.3DS file imported into 3D Studio Max.

It's not very clear from the image above, but the blue axis is the positive Z axis. The green axis is positive Y and red is positive X axis. It is very important that you model have it's heading along the positive Z axis, otherwise the application will not rotate your model correctly. Also note the origin of the body and rotor. These are the pivot points around which rotation occurs.

Once you have positioned and scaled your model correctly, you will probably have multiple transformations on the stack (such as translation, rotation or modifiers); use the tools option to collapse all transformations into a single stack. The body of the helicopter should be called "Body" and the rotor, "Rotor" (case sensitive).

Here's an alternative model for you to experiment with.

C++ Helicopter Simulator for OpenGL
apache.3DS

This model is very simple and is not very well constructed. Rename the file to load, or copy & paste some code to create another import routine. Don't complain about the lack of textures or shading, I have not even attempted this yet as I am concentrating on the mathematics of camera movements.