I’m trying to figure out how OpenGL compresses and mipmaps 3D textures. From the spec, I gather that mipmaps are just 2x2x2 down-sampled (cube filtered) versions of the original. But how might one compress 3D images for S3TC, by compressing each slice independently, or by taking slices together somehow? I have a working version of the 2D version, but I’m not sure how to proceed with 3D. I’m thinking slices but not sure.
I know that OpenGL can do this for me, but I want this addition to my library.
The more I think about it the more I think it has to be independent slices, since I see nothing in the s3tc spec about volumes. Probably just the way it is for 2D, only repeat for each slice. That’s got to be it!
Thank you very much for pointing that out. That’s exactly what I was looking for (right under my nose).
This spec seems to confirm my original suspicion, that each slice (layer) is calculated independently of the others. DXT1 size is 8 bytes in 2D 4x4, but 16 bytes in 3D 4x4x2 and so on. I initially feared I’d need a new algorithm to convert the blocks, but apparently that’s not the case. What a relief!
I fail to see your problem, John. As ZbuffeR correctly pointed out, only Nvidia provides this extension. The comment was neither patronizing nor inappropriate.