PDA

View Full Version : How to create floating point texture?



Kaya
04-20-2005, 09:41 AM
I am currently trying to create a cubemap with a floating point format that will be bound as a render target using the FBO extension. But I simply fail creating such a texture. I have tried the following code, even with many modifications of the parameter "GL_RGB_FLOAT16_ATI", but if I check for an error using glGetError() this code seems always to fail.

GLuint tex;
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_CUBE_MAP, tex);
glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, GL_RGB_FLOAT16_ATI, 256, 256, 0, GL_RGB, GL_FLOAT, NULL);Does anybody have some experience with creating floating point textures for usage with FBO?

The hardware I am working on is a Geforc FX Go 5700 with the latest drivers being installed. I am especially curious about the fact that the NVidia HDR demo does work on that machine, and the cod of that demo just uses the same call as above, except that the demo really loads in some data and does not specify a NULL-pointer to the image.

Thanks,
Kaya

-NiCo-
04-20-2005, 05:13 PM
On Nvidia GPUs, the GL_ATI_texture_float extension is not supported by NV3X (GeforceFX) architectures, only by NV4X (Geforce6).

Greetz,

Nico

Java Cool Dude
04-20-2005, 05:35 PM
Can't do that on the GF FX range of cards brother, I finally figured that out after almost committing suicide :'(
Stick with int Cubemaps and pack/unpack your stuff...

Other than that, if you have a GF 6800 or a R300+ card, you can do something like this


if(!intPBuffer)
shadowMap.createCubeShell("ShadowMap",TCMSize, GL_FLOAT, GL_RGBA16F_ARB, GL_RGBA);
else
{
shadowMap.createCubeShell("ShadowMap",TCMSize);
bias = 0.01f;
}

Kaya
04-22-2005, 02:04 AM
Thank you for that information. So I guess things won't be so simple as I'd like them to be.

Kaya