Texture3D Mipmap Trouble

If you let OGL create the mipmaps for a 3D texture automatically, all dimensions of the texture are halved. This is a problem for me because the slices of the 3D texture blend together in the mipmap, and I want the slices to be independent of one another.

My first attempt to solve this was to generate the mipmaps myself. I halved the width and height of the original texture, but I left the depth the same as in level 0.

OGL’s Mipmap:
(LEVEL 0) 16x16x16 -> (LEVEL 1) 8x8x8

My Mipmap:
(LEVEL 0) 16x16x16 -> (LEVEL 1) 8x8x16

Unfortunately, since OGL requires the mipmap to be halved in all dimensions (?), my custom-made one turned up completely white at runtime. Does anyone know a way to create mipmaps that don’t blend the layers in a 3D Texture? I know 2D Array Textures are one way, but shader programming confuses and frightens me.

Apparently, someone found a way to do this. It’s just too bad the poster didn’t elaborate on how he solved the issue.

I know 2D Array Textures are one way, but shader programming confuses and frightens me.

Then you’re not going to get very far in graphics programming.

Apparently, someone found a way to do this. It’s just too bad the poster didn’t elaborate on how he solved the issue.

It wouldn’t matter if he did because OpenGL doesn’t allow that. If it “worked”, it would only be because of a driver bug, and thus there would be no expectation that it would work on any other hardware. That post was from 2006, so odds are good that the MacOSX bug was fixed.

Suffice it to say that array textures is how this is done. And you can’t emulate array texture mipmapping with 3D textures.

Alright then, I’ll take another stab at GLSL. I had a feeling that thread I found was only false hope.