3d texture mapping

I have a created 8 3d textures of size 256 * 256 * 256, when I am rendering 204 slices for each texture, i see all 8 textures in 8 different viewport; when i render these 8 textures with 205 slices for each of them, i see 7 textures , i dont see anything in 8th viewport; when i render these 8 textures with 239 slices i see only 6 textures and in two viewports i dont see anything. And this trend continues…

I am not able to understand why this is happening ? Am i doing something wrong?

I am using Nvidia Geforce 5200 (128 MB)graphics card and 1 GB of RAM in my system.

Thanks in advance.



I would say you are running out of memory on the graphics board. As you render more Slices more of the 3d-texture must be in videomemory. I dont know why complete viewports fail to render, cause that should be done one after the other. But maybe thats the way the driver handles that problem.
Just try to reduce the texture resolution. Maybe just in one direction, those 3D textures consume lots of memory.


I have also tried rendering 30 textures (256 * 256 * 256) with 6 slices mapping to the side of the cube. I was able to do so (I see all the textures).

Therefore I tried rendering the complete volume ( I mean all the slices and not just the surface). In this case as I told earlier I am not able to render more than six textures of size (256 * 256 * 256). As I reduce the number of slices I can see the other textures.

I am not sure why this thing is happening.

Is there some restriction to the number of polygons I can map.


If the GPU renders a polygon with a texture applied, not the complete texture is needed in videomemory. The GPU just fetches those pixels from the texture that it needs (and some around them for efficient caching).
So if you only render the 3d texture on a cube the inner pixels of the texture arent needed in video memory and so there is enough room for many textures. But if you render all slices the complete texture needs to be in memory and thats 256256256 = 16.777.216 Bytes for a 8bit luminance texture. take this 6 times and you have 100 MB plus some space for the framebuffer, depthbuffer, backbuffer and geometry and you reach your limit of 128 MB.

So i would still say you are memory limited.


Why use sucha large textures?
If you’re trying to recreate a liquid thing(I forgot how to say it in English :-p), in example a blue colored water, just create a very small texture(let’s say 4x4) and the just repeat it in all direction(I gues the directions are S, T and R)