3d textures and memory....

Hello,

I am a bit confused with the following:

I have a 3D texture based volume rendered which I have just tested on the following hardware:

  • ATI Radeon 9000 Mobility 64Mb

To my suprise I was able to load up and render at ~15fps a 256x256x256 RGBA volume.

How is this possible??

Isnt the texture actually to big to fit on the gfx card, as (256^3 * 32)/(810241024) = 64Mb!

So if my maths are correct the data is 64Mb and so this should not leave any room for the framebuffer or other 2D textures i use in my program…

Here is what i use to upload the data to the gfx:
glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA, volobj->texwidth, volobj->texheight, volobj->texdepth, 0, GL_RGBA, GL_UNSIGNED_BYTE, volobj->texture3d);

I dont understand, can someone plz enlighten me.
thanks :wink:

UT

Hello again,

And now another question,

With the new 512Mb cards from nvidia coming out,
is it then possible to render 512^3 RGBA 3D Textures?

thanks,

UT.

Originally posted by UT666:
How is this possible??
Probably your texture resides in host memory and texels are pulled across the AGP bus.

With the new 512Mb cards from nvidia coming out, is it then possible to render 512^3 RGBA 3D Textures?
It won’t fit in vidmem, but you might be able to render from host memory, depending on the system.

Even on a 512MB card a 512^3 RGBA would not fit b/c that size of a 3D texture is exactly 512MB and the graphics card needs some memory for the front and back buffers, well front buffer at least I guess since you don’t HAVE to have a backbuffer. Once we get 1GB cards maybe. :slight_smile: This doesn’t mean you can’t use it, it will just be stored in system memory.

-SirKnight