Acquiring and Building the VTP Software under Windows

Compiler

Microsoft Visual C++ is recommended.  Primary development happens now on Visual C++ 2015 (aka VC14), but older versions of Visual C++ will probably also work.

It may also be possible to use gcc on Windows, by adapting the existing Unix makefiles, but this has not been well tested.

1. The dependencies

The VTP software is very ambitious and attempts to be comprehensive, so unavoidably it depends on many other libraries.  As Newton said, "If I have seen further than others, it is because I have stood on the shoulders of giants."

The following six libraries, built for both VC7.1 and VC9, are conveniently contained in WinAPIs-1104.zip (1 MB)

For 3D rendering of terrain, you will need:

To compile the GUI applications (VTBuilder and Enviro) you will need:

For 3D applications (e.g. Enviro) you need:

Other Optional Libraries:

If you want to have another option for texture compression (besides standard OpenGL), you can grab Simon Brown's squish library.

2. Configure and build wxWidgets

If you are using the pre-built wxWidgets headers/libs, you can skip this step.

To build wxWidgets, use the correct workspace, e.g. wxWidgets-3.0.2/build/msw/wx_vc12_dll.dsw

You will build both the configurations "DLL Debug" and "DLL Release".

The simplest way is to build the whole workspace, but that is slow and not really necessary.  The VTP projects use only the "aui", base", "core", "net", and "gl" libraries.

Building wxWidgets is a fairly complex subject.  I recommend the following the following steps:

  1. Edit your file include/wx/msw/setup.h to turns off a large number of things for a simpler, smaller library.
  2. Remove all of following hard-coded libraries in the wx project settings under "Project Properties: Linker: Input":
    wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib
    You won't need them.
  3. Remember, you only need to build the projects "aui", "base", "core", "net" and "gl".

3. Download the VTP source distribution

You can get the very latest VTP source using Mercurial, or a source zip from the same place.
You can unzip it anywhere, but i recommend simply using the root of any drive. 

4. Build the VTP software using CMake

  1. Run CMake (you can get it from here)
  2. Tell it your source location (e.g. C:/vtp) and a place to build (e.g. C:/vtp/build)
  3. Fill in the location of all the dependencies.  It's OK to omit the optional libraries (netcdf, curl, bzip2, squish, quikgrid).
  4. Press "configure" and "generate"
  5. Go to your build folder and open VTP.sln in MSVC.
  6. Build.

6. Download Application Data

vtp-apps-data.zip (8 MB) (required) contains basic data for the main applications, including a world map for use by VTBuilder, and earth image, plant images, road textures, etc. for Enviro.  You should unzip this to the same place as your source, for example if your VTP source is in C:\work\vtp, unzip it there and it will create a folder C:\work\vtp\Data.

Optional:

  1. Hawaii-demo-0411.zip (32 MB) (optional) contains some demo terrain data, including elevation and satellite imagery for the Island of Hawai`i.  You don't need this if you are only going to use your own geospatial data.
  2. vtp-plantlib.zip (80 MB) (optional) contains the VTP Plant library of billboard plant textures.

7. Set Environment Variables

Set the following environment variables as follows, or change the path if you installed GDAL and PROJ4 in some other location.

GDAL_DATA=C:\APIs\gdal190\data
PROJ_LIB=C:\VTP\proj\nad

This will allow you to use do conversions between different Projections, use  State Plane Coordinates, and other CRS operations.

8. Set your PATH

Some of the DLLs which you have installed or built will need to be found at runtime.  You can either copy them to a location on your path, or (recommended) add them to your PATH environment variable.  

9. Run!

If you have also downloaded the pre-built binaries then you will find documentation for each application in the Docs folder under each directory.  Alternately, documentation is online.

See the FAQ and status pages for bug reports, feature requests, etc.

Try the software on your own geospatial data!

Send feedback to myself or the mailing list!

Note: Sample applications

Beside the large, useful applications Enviro and VTBuilder, the are also six smaller applications provided as small, simple examples of how to use the VTP terrain library on top of several application frameworks:

VTP\TerrainApps\Simple       (Builds directly on OSG's osgViewer)
VTP\TerrainApps\glutSimple  
(uses GLUT)
VTP\TerrainApps\mfcSimple   
(uses MFC)
VTP\TerrainApps\sdlSimple   
(uses SDL)
VTP\TerrainApps\wxSimple    
(uses wxWidgets)
VTP\TerrainApps\fltkSimple  
(uses FLTK)