How did this slip by me?
The following base internal formats from table 3.15 are “color-renderable”: RGB, RGBA, FLOAT_R_NV, FLOAT_RG_NV, FLOAT_RGB_NV, and FLOAT_RGBA_NV. The sized internal formats from table 3.16 that have a color-renderable base internal format are also color-renderable.
And sure enough GL_FLOAT_R_NV as an internal format produces faster results than emulating it with a three-/four-component texture. GL_RED is the texture format to read back.
Now I just need to figure out the texture format for GL_FLOAT_RG_NV! I only see GL_RED, GL_RGB and GL_RGBA in gl.h.
Download the latest glext.h
The texture formats you look for are in the NV_*** (somehow) extension.
Hmm, can’t see anything.
Unless we’re getting mixed up here. GL_FLOAT_[RGBA]_NV is indeed in glext.h, which satisfies the “internal format” parameter of glTexImage/glReadPixels/etc. But I also need a value to satisfy the “format” parameter, which AFAIK is just GL_RED, GL_RGB or GL_RGBA. I seem to be lacking a GL_RG or similar to feed in.
Any ideas if there is one? Seems a bit of an odd omission, particularly as a colleague has expressed a need for two-component textures.
Hm, I understand. Sorry, I thought you were speaking about the extension.
I don’t really know, but have you tried using GL_RGBA to unpoad/download the texture? B and A channels should be ingored in this case.