Original Post
Hello, I want to load 16-bit floating point texture data into my textures. With 32-bit my call looks like this and works fine: glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA32F_ARB, width, height, 0, GL_RGBA32F_ARB, GL_FLOAT, pData ); Now I want to load 16-bit data instead, so I changed the call to this: glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA16F_ARB, width, height, 0, GL_RGBA16F_ARB, GL_FLOAT, pData ); Crashes. I guess because I don't supply GL_FLOAT values, but rather 16-bit ones. So I tried glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA16F_ARB, width, height, 0, GL_RGBA16F_ARB, GL_RGBA16F_ARB, pData ); Does not work, because the spec ( http://oss.sgi.com/projects/ogl-sample/registry/ARB/texture_float.txt ) says that GL_RGBA16F_ARB is only allowed for the internal parameter. The spec doesn't give me a new GL_FLOAT16 type or whatever which I could pass in for the argument. So, in conclusion, is there any way to directly load 16-bit floating point data into my textures? Or do I really have to convert the 16-bit to 32-bit floats first, then pass this to glTexImage2D just that it gets converted down to 16-bit again? It doesn't exactly allow for a reasonable texture loading speed... Or is there a way to make this work? -Matthias