作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想通过 glReadPixels 使用 GL_FLOAT 纹理 获取值。
我的 Android 设备支持 OES_texture_float。但是,附加 GL_FLOAT 纹理成为错误。
在 Android 的 OpenGL ES 2.0 中,无法将 GL_FLOAT 纹理附加到 FBO?还是依赖于硬件?
我的部分代码是:
初始化:
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D,texture);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,texWidth,texHeight,0,GL_RGB,GL_FLOAT,NULL);
FBO 附件:
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.
如果有人有一些见解,我会很感激。
最佳答案
未扩展的 OpenGL ES 2.0 不允许这种类型的 FBO,但是有一些扩展(和一些移动 GPU)支持浮点缓冲区。看看GL_OES_texture_float和 GL_NV_fbo_color_attachments .
nVidia Tegra 3 支持浮点 FBO。
附言对于 Tegra 2,这似乎也是可能的:http://forums.developer.nvidia.com/devforum/discussion/1576/tegra-2-slow-floating-point-texture-operations/p1
关于c++ - 安卓 OpenGL ES 2.0 : Can a GL_FLOAT texture be assigned to a FBO as a COLOR attachment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10675479/
我是一名优秀的程序员,十分优秀!