Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android OpenGL ES 2.0 : Can a GL_FLOAT texture be assigned to a FBO as a COLOR attachment?

I want to get the value using GL_FLOAT texture by glReadPixels.

My Android device support OES_texture_float. but, it became an error to attach GL_FLOAT texture.

In OpenGL ES 2.0 in Android, to attach GL_FLOAT texture to FBO is impossible? Or depend on hardware?

Part of my code is:

Init:

glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D,texture);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,texWidth,texHeight,0,GL_RGB,GL_FLOAT,NULL);

FBO Attach:

glBindFramebuffer(GL_FRAMEBUFFER,framebuffer);
glFramebufferTexture2D(GL_FRAMEBUFFER,GL_COLOR_ATTACHMENT0,GL_TEXTURE_2D,texture,0);
checkGlError("FBO Settings");
// glGetError() return 0x502.
status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
// glCheckFramebufferStatus() return 0.

If anyone has some insight i'd ppreciate it.

like image 807
ckit_bara Avatar asked Feb 01 '26 06:02

ckit_bara


1 Answers

The unextended OpenGL ES 2.0 does not allow FBOs of this type, however there are some extensions (and some mobile GPUs) that supports floating point buffers. Take a look at GL_OES_texture_float and GL_NV_fbo_color_attachments.

nVidia Tegra 3 supports floating point FBOs.

P.S. With Tegra 2 it also seems to be possible: http://forums.developer.nvidia.com/devforum/discussion/1576/tegra-2-slow-floating-point-texture-operations/p1

like image 177
Sergey K. Avatar answered Feb 03 '26 21:02

Sergey K.