Phillip Hamlyn

British Landscape Explorer - Early Steps

Once I'd decided to 'have a go' at 3d landscape modelling I was encouraged to find that my current best known language - Visual Basic 6, supported the latest version of DirectX 7 which had a supported COM layer. This allowed me to tap into the DirectX 7 API through COM and use the power of the 3d card on the computer.

VB6 isn't anyone's idea of a 3d modelling language and I knew that these first steps we're going to be more of a learning exercise. The first task was to produce a VB6 client which embedded a DirectX mesh and that could be rotated.

VB6 Client hosting a DirectX7 Mesh with Rotation

Next stage was to move from wireframe a pixel grid.

And now colour it, with appropriate variations in one axis to simulate a landscape.

Coloured landscape in VB6 DirectX7

Nice, if you like 3d chess ! The next obvious step was to scan in some maps and overlay them on the mesh. This was a little harder to achieve because it required understanding of the peculiar geometry of textures, but I got there eventually.

A map overlayed on a 3d grid

You'll note that the map and the landscape height do not correspond at all, and the quality of the scanned in image is horrible. Worst of all it was a huge Bitmap consuming 6 MB just to load it. This clearly was a dead end but had improved my knowledge of the basics hugely.

My next break was to discover that the Ordnance Survey had free samples of a specific area of the UK for download - these included and overlapping section of high quality digital map rasters and heightmap files. Intended for use for programmers to design compliant applications this was just what I wanted.

A view of Swansea using the tool

Here I was finally able to view a section of landscape and navigate through it with it representing real land with real heights. Of course my implementation at this point was naive as the view only covered a few kilometres.

Another view of Swansea

And yet another

There my project lay for some time, but was useful in demonstrating technical capability at a job interview. The knowledge of how to do this cam in handy in other ways. My next big step forward was when the DirectX9 API was ported to .net.