Chalnoth said:Ah, I think I understand now. I bet, though, that the 300kb is just the MIP map tower. The added material information may not ever go to the video card. In fact, one simple way to apply the added material information would just be to encode it into the alpha channel, which would, on a 32-bit texture, end up supporting 256 different types of materials.
Yes. What I have doubts about is normal maps/specular map support. From the screenshots/trailer in Enemy Territory: QW MegaTexture terrains do have these but the partial support in D3/Q4 doesn't explicitly mention them. An alternate theory of mine is that the alpha channel stores a heightmap (which could probably also be used as a rough visibility implementation).
Now, here's what I'm going to propose is going on. Let's imagine that you store the full 32k x 32k megatexture in 256 x 256 blocks. It would be relatively easy to pull out the nearest four blocks and pack them into a single 512 x 512 texture. Then, just do the same exact thing for the next three MIP map levels (16k x 16k, 8k x 8k, and 4k x 4k), always ensuring that the nearest four 256 x 256 blocks are stored in video memory as a 512 x 512 texture each.
IIRC makeMegaTexture creates 128 x 128 blocks (and lower). BTW, recent Quake Wars previews talk about the game using 8mb of vram, instead of the 2mb used in the MT implementation in D3/Q4; the difference in these could account for the presence of normal maps.