   Help with floating point textures
  Hi all, I've been scouring the internet for this and I can't seem to find it.  Does anyone know how to upload floating point textures to the graphics card.  I have an array of floats and when I useglTexImage2D(GL_TEXTURE_2D, 0, GL_FLOAT_R32_NV, floatTexture.sizeX, floatTexture.sizeY,0,GL_RED,GL_FLOAT,(GLvoid*)floatTexture.data);All it gives me is black.  I have a GeForce 6800 so I'm pretty sure my graphics card can handle 32 bit floating point textures.  This is really weird.  I can't find any documentation on this.  It would seem rather simple.   
float *data = new float[textureSizeWidth * textureSizeHeight * 4];glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F_ARB, textureSizeWidth, textureSizeHeight, 0, GL_RGBA, GL_FLOAT, data);HTH   ;  That actually gives me a compile error. Do I need another header file?   ;  Only 4 component 16 bit/32 bit per-component textures are supported. Furthermore, 32 bit textures cannot be filtered.   ;  What are you using to get OpenGL extensions? GLEE, GLEW, you are loading them yourself?And post your updated code for the texture creation process now. BTW FP textures as of now are basically made up in code not Photoshop or the like...   ;Try to use :glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGB32_NV, w1, h1, 0,GL_RGB, GL_FLOAT, data);with fragment shader..;  Thanks for all the replies guys.  Unfortunatley this still isn't working.  I have an array of floats.  I'm not using glew or glee or anything.  This isn't an image or anything these are are actually vectors that are spit out by other code.  I'm trying to use the graphics card to do some data visualizations and possibly some computation so I need the fp32 buffer.So here's my code:In the init I have:floatTexture = loadFloatFile("file.ff3"); <-This loads a texture into a 1d arrayglBindTexture(GL_TEXTURE_2D, texName);glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);glTexImage2D(GL_TEXTURE_2D, 0, GL_FLOAT_R32_NV, floatTexture.sizeX, floatTexture.sizeY,0,GL_RED,GL_FLOAT,(GLvoid*)floatTexture.data);In my display function I have this: glBindTexture (GL_TEXTURE_2D, texName);glCallList(displayList);I also have a very simple cg shader attached to this, The vertex shader is a simple modelviewprojection multiply... but here's the fragment shader:void main(float4 l_position : POSITION,  float4 l_texcoord0 : TEXCOORD0, uniform sampler2D tex_0 : TEXUNIT0,in uniform float4 displayProperties,out float4 o_color : COLOR0){  //texture color;  float4 textureValue = tex2D(tex_0, l_texcoord0.xy);  o_color.a = 1.0f;  o_color.rgb = textureValue.r;}I know this works to an extent because if I use a TGA file and just use the standard RGBA to RGBA it works fine.  Why is this not working?  I'm using glext.hWeird... Any ideas?  I also tried using GL_FLOAT_RGBA32_NV and that didn't work either.Rojbi: Can you explain the GL_TEXTURE_RECTANGLE_NV?  How do I use that, do I need anyting else in my pixel shader?   ;  PS. So if I use RGBA32 as the texture format it works fine for both the GL_RED as well as GL_RGBA.  WHAT's UP WITH THAT?!  Does that mean GeForce 6800 doesn't support it?  All documentation says so.   ;  shutoff your linear filter and use GL_NEAREST or no filtering you can't filter the R32 format, only RGBA16/GR16 are allowed to be filtered... HTH   ;  I got it work using the rectangle thingfloatTexture = loadFloatFile("file.ff3");glBindTexture(GL_TEXTURE_2D, texName);glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEARST);glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_R32_NV, floatTexture.sizeX, floatTexture.sizeY,0,GL_RED,GL_FLOAT,(GLvoid*)floatTexture.data);Then in my pixel shader I changed it tovoid main(float4 l_position : POSITION,float4 l_texcoord0 : TEXCOORD0,uniform samplerRECT tex_0 : TEXUNIT0,in uniform float4 displayProperties,out float4 o_color : COLOR0){//texture color;float4 textureValue = tex2D(tex_0, l_texcoord0.xy * TEXTUREPIXELWIDTH);o_color.a = 1.0f;o_color.rgb = textureValue.r;}