More mipmapping

Hi All,

I've added mipmapped texture rendering to Sapphire to speed-up rendering of extremely large texture maps. I'll post some screenshots tomorrow, and explain a little bit more about the technology and benefits thereof. Anyway, to enable efficient mipmap texture rendering, I have had to modify the mipmap generation scheme in L3DT. Previously, mipmaps were generated at 4x resolution steps, meaning the 1st mipmap was 1/4th the resolution of the full map, the second was 1/16th, the third 1/64th, etc. This was fine for the 2D renderer in L3DT, and didn't use up much disk space. However, for efficient 3D texture rendering I've had to change to 2x resolution (1/2, 1/4, 1/8, etc). The upside is that Sapphire will now render megatextures efficiently, but the down-side is that L3DT will now take a bit longer to generate mipmaps, and that more space on disk will be taken up by those mipmaps (~1/3 the total map size). Given that the mipmaps now let me fly around over a terrain with a 3 gigabyte texture using only a 256Mb graphics card, I consider a little extra storage space to be a pretty good trade-off.

Also, the next release of the Zeolite plugin API will include functions to manipulate these mipmaps, just in case clever plugin developers can find another clever use for them.

Cheers, Aaron.