I've been dabbling with a quick proof of concept with regards to rendering the world cache. My first attempt can be found here.

http://hcc.reclamation.dk/matecuss/IstariaExplorer.zip (Thanks to Arcat for the upload space).

This zip contains two files:

(1) IstariaExplorer.exe - Main exe that renders a single world cache sector
(2) terrain.image - Any image file (currently a jpg) that will be used to render the landscape. Delete or rename to force non-textured rendering.

This first version produces a list of available sectors to the left. Clicking on one will result in the heightmap for that sector being rendered to the right. Hold down the left mouse button to rotate the view. You can move about the sector by holding the right mouse button. Scrolling the wheel will change the height.

At the moment things are very basic, and was mainly used as a test to try out that my DirectX classes work and to understand the heightmap format. For now, certain configuration options are fixed and you'll require a graphics card that supports Hardware Vertex Processing, 24bit Depth Buffer and DirectX9 (hopefully most will support these).

My plans for this? Well here are some ideas I have in mind:

- Rendering of appropriate textures to match ingame. (Currently the sector is blanket rendered with a single texture)
- Add water level
- Ability to view more then just a single sector
- Global map, i.e. GoogleIstaria
- Add level of detail option (currently all points in a sector are used, i.e. 30000+ polys). This will be needed for multisector displays
- Add support to render maps (In theory all that is needed to do is to alter the projection transformations).
- Add lighting
- Add support for map markers
- Add support for parsing log file resource locations
- Rendering of resource fields/boundaries
- Render sector objects (probably way too much work).
- Contol of DirectX settings so users can adjust to their system
- Collision detection
- Anything that sounds good :)

What I've learnt so far (please correct me if I'm mistaken):


- 32,282 byte
- 24 byte header (Not sure whats in this, perhaps general sector theme)
- 127 x 127 16bit word values denoting height (0-65535)

What I need to figure out:

- What the mask[n]_x_y.aei files are for (I presume additional texture layers, such as roads)
- How big a sector is in Istarian coordiantes.