   framebuffer with 32 bit float textures
  Hi,I have a Geforce 6600 and I'm trying to render a shadow map into a floating point texture, but I always get an incomplete attachment error with 32bit floating point textures (GL_ALPHA32F_ARB, GL_RGBA32F_ARB). The code works fine with 8 bit textures. Can someone give me a hint about what texture format should I use? Using DirectX everything is fine, so I know my video board supports rendering to float textures.   
  Hi, do you remember to specify GL_NEAREST filtering for the texture? I don't think 6800 cards filter floating point textures. Just a wild guess. Post the code if that's not the problem.;  Yes, I set GL_NEAREST and texture creation failed.Here is my create render target function[SOURCE]TTextureId COpenGLRenderer::CreateRenderTarget(int width, int height, EPixelFormat pixelFormat, ETextureAddressMode addressMode){GLenum format;int internalformat, type, size;switch(pixelFormat) {case PIXEL_FORMAT_L_I8:format = GL_LUMINANCE;internalformat = GL_LUMINANCE8;type = GL_UNSIGNED_BYTE;size = width * height;break;case PIXEL_FORMAT_LA_I8:format = GL_LUMINANCE_ALPHA;internalformat = GL_LUMINANCE8_ALPHA8;type = GL_UNSIGNED_BYTE;size = width * height * 2;break;case PIXEL_FORMAT_RGB_I8:format = GL_RGB;internalformat = GL_RGB8;type = GL_UNSIGNED_BYTE;size = width * height * 3;break;case PIXEL_FORMAT_RGBA_I8:format = GL_RGBA;internalformat = GL_RGBA8;type = GL_UNSIGNED_BYTE;size = width * height * 4;break;case PIXEL_FORMAT_A_I8:format = GL_ALPHA;internalformat = GL_ALPHA8;type = GL_UNSIGNED_BYTE;size = width * height;break;case PIXEL_FORMAT_I_I8:format = GL_INTENSITY;internalformat = GL_INTENSITY;type = GL_UNSIGNED_BYTE;size = width * height;break;case PIXEL_FORMAT_RGBA_F32:format = GL_RGBA;internalformat = GL_RGBA32F_ARB;type = GL_FLOAT;size = width * height * 16;break;case PIXEL_FORMAT_R_F32:case PIXEL_FORMAT_A_F32:format = GL_ALPHA;internalformat = GL_ALPHA32F_ARB;type = GL_FLOAT;size = width * height * 4;break;case PIXEL_FORMAT_RGBA_F16:format = GL_RGBA;internalformat = GL_RGBA16F_ARB;type = GL_FLOAT;size = width * height * 8;break;case PIXEL_FORMAT_A_F16:format = GL_ALPHA;internalformat = GL_ALPHA16F_ARB;type = GL_FLOAT;size = width * height * 2;break;default:CLog::LogError("Unsupported pixel format!", __FUNCNAME__);return 0;}//use unit 0glActiveTexture(GL_TEXTURE0);uint texId = 0;glGenTextures(1, &texId);//save old textureint oldTexId;glGetIntegerv(GL_ACTIVE_TEXTURE, &oldTexId);//set parametersglBindTexture(GL_TEXTURE_2D, texId);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 0);switch(addressMode){case ADDRESS_MODE_WRAP:glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);break;case ADDRESS_MODE_CLAMP:glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);break;case ADDRESS_MODE_MIRROR:glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_MIRRORED_REPEAT);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_MIRRORED_REPEAT);break;default:ASSERT(0);break;};//alloc spaceglTexImage2D(GL_TEXTURE_2D, 0, internalformat, width, height, 0, format, type, 0);int error1 = glGetError();//alloc mipmaps spaceglGenerateMipmapEXT(GL_TEXTURE_2D);int error = glGetError();//restore old textureglBindTexture(GL_TEXTURE_2D, oldTexId);return texId;}[/SOURCE];  I forgot to post framebuffer creation code:[SOURCE]//bind framebuferglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_fbo);//attach texture targetuint tex = reinterpret_cast<uint>(color);ASSERT(glIsTexture(tex));glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, tex, 0);//attach depth bufferuint depth = reinterpret_cast<uint>(depthStencil);ASSERT(glIsRenderbufferEXT(depth));   glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depth);//check for framebuffer completionint x = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);if(glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) != GL_FRAMEBUFFER_COMPLETE_EXT || glGetError() != GL_NO_ERROR) {CLog::LogWarning("Framebuffer incomplete, invalidating context.");m_contextState = RENDER_CONTEXT_INVALID;}m_textureTarget = true;glCullFace(m_cullBack ? GL_FRONT : GL_BACK); //invert cull mode[/SOURCE]I always get a GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT error;   ;  Ok, after installing the latest drivers I managed to perform render to texture into GL_RGBA16F_ARB and GL_RGBA32F_ARB. But the performance with GL_RGBA32F_ARB is terrible (3 FPS with GL_RGBA32F_ARB versus 72 with GL_RGBA16F_ARB). But GL_ALPHA32F_ARB still not working.   ;  IIRC there isn't any support for GL_ALPHA32F_ARB and FBO for RTT. You need to use RGBA16 or RGBA32 as you have seen 32bit is SLOW...   