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.

Next stage was to move from wireframe a pixel grid.

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

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.

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.

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.


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.
