I hope this is not too technical and largely understandable. Some general information, in World of Warcraft (at least Vanilla), terrain information are represented by files called WDT which consist of:
- An area info of 64x64 tiles, that area info express whether a tile exist at that location or not (e.g., if a tile exist in X: 32 and Y: 27, a tile file 27_32 shall exist in the MPQ)
- Optionally, a global WMO (World Model Object) reference. Mainly for dungeons.
More detailed information are then available in tile files called ADT, these ADT contains (highly simplified):
- The terrain heightmap.
- The terrain holemap.
- The terrain liquid height and types.
- References to doodad (M2 or MDX files) and their placement on the terrain.
- References to WMO (big buildings) and their placement on the terrain. WMO can contain liquid and be made of several groups.
ADT references to M2 and WMO files, these are both models, trees would fall under the first category, Stormwind, blacksmith building or dungeon would fall under the second category.
Based on this, the extractors are extracting 3 types of maps data:
Maps files are a 2D view of the terrain storing the height map, the area data, the liquid height map, liquid type and the hole map:
- Height Map: The Z-index of the terrain at each location. It allows to move your char up and down to follow the terrain
- Area data: Helps to know whether you're changing from a sub-zone on a tile (you know, when you get XP because you found a new area)
- Liquid height map and type: Same as for height map but for liquid, knowing when you are in "swimming mode", liquid type helps to know if fatigue must be enabled or if you need to take damages.
- Hole map: Hole map is a series of unsigned int indicating whether a chunk on a tile has a hole or not. That's an advanced calculation but it's used, for instance, to insert a WMO such as a gold mine inside a terrain. It just tell the engine "do not render geometry at this location".
Vmaps files are a 3D view of the terrain, storing the terrain and model bouding boxes to allow collision detection, helps to calculate Line of Sight using Bounding Interval Hierarchy and Raytracing methods to achieve it. They are built the same way as the WDT/ADT/Model files:
.vmtree files contain BIH calculation for a WDT level
.vmtile files contain BIH calculation and model information (placement) for an ADT level
.vmo files contain BIH calculation and geometry of a single model
Mmaps files are a 3D view of the terrain allowing for path finding and navigation. From the extracted data, navmeshes are then created (navmesh is a series of simplified polygons easing navigation calculation server-side). It uses recast to build navmeshes and detour to calculate the paths on these navmeshes. I can't give details on the files content yet but they very look like they have a similar WDT/ADT organisation.
Hope this helps,