I'm having problems with DXT volume textures with openGL render system and nVidia hardware. Everything is fine with AMD hardware and/or with DirectX render system.
I've reproduced the bug with Ogre 1.9 and also in Ogre 1.7 samples, by compressing the "perlinVolume.dds" file to DXT5 and running the Compositor sample with the oldTV compositor enabled.
This is driving me crazy, as everything I've read these days about compressed volume texture says that it can work on nVidia due to an extension ( GL_NV_texture_compression_vtc) but not on AMD...Well, it seems time have changed
Basically, the rendering is broken and very pixellated/blocky.
I think I've found a plausible answere here: https://www.opengl.org/discussion_board ... TexImage3D
That said, it seems that on nVidia hardware it uses the VTC compression and not the S3TC one. Apart from the code snippet given in the link, I've not found any information on how to generate VTC textures, even the nvdxt tools cannot compress a texture in this format.Each VTC compression format is similar to a corresponding S3TC
compression format, but where an S3TC block encodes a 4x4 block of
texels, a VTC block encodes a 4x4x1, 4x4x2, or 4x4x4 block of texels.
If the depth of the image is four or greater, 4x4x4 blocks are used,
and if the depth is 1 or 2, 4x4x1 or 4x4x2 blocks are used.
Now I have these choices:
-Don't use compressed 3D Textures.
-Disable (is this even possible ?) the GL_NV_texture_compression_vtc extension to see if it works without it.
-Convert the textures at runtime when app runs on an nVidia hardware.