I'm actually working on a more advanced renderer at the mo. and to be honest the concern about performance is largely unneccessary.
My current fortress (relatively small <60 dwarves) on an 18x18x34 map (6 region squares, 288x288x544) tiles is rendered with:
452272 triangles
328313 verticies (optimal sharing isn't always possible because of texture-coord issues)
24 textures (this will probably go up, I'm using the same texture for multiple materials at the moment)
only 1 draw call per texture using 1 vertex buffer and 1 index buffer for all geometry
per-pixel lighting (simple) and shadow mapping
And performance is fine, and much much faster than 3Dwarf on my Radeon X800. It even runs without GPU shaders on the GeForce2MX at work (although a bit slowly)
TBH using a 3D-party renderer would only help with certain things. The difficult work is in the geometry creation, but it would help with things like dynamic LOD for trees and best case senarios such as when the view is inside. What it probably wouldn't help with is the exterior view (worst-case) where you just want to push geometry as fast as possible to the GPU and using paging/BSP/occlusion culling might just increase the overhead. I also suspect that the nature of the geometry combined with the floating viewpoint maps isn't very well suited to the usual optimisation techniques for landscapes.
But then I'm only an amateur so I may be wrong
, and writing the renderer is mainly the point of the exercise for me.
Also I think the reasons people have been focused on hacking memory rather than the save file is:
1- There is already some info on it from tool writers who need to hack the running process anyway
2- Perhaps most importantly it's much easier to find the information, since you can step through the assembler in a debugger to find where things are. With so little information on the internal data structures used this is really the only way - just finding the type of material used for a virgin rock tile requires knowledge of 4-5 different structures.
As for using the file-depot format, I've looked at it and I'm not sure it contains enough information. There is no actual data on the type of the tiles, just the image.
I'll be releasing my renderer when it's finished, or nearly so (I'll probably release before implementing good trees, since these are a real PITA). As I have the geometry anyway I could also export it to some other format, but that's not high on my list of priorities