渲染到iOS下的浮点纹理
问题描述:
iPad现在支持OES_texture_half_float
扩展名。不幸的是,我无法将浮点纹理绑定到帧缓冲区对象。这里是我的尝试:渲染到iOS下的浮点纹理
GLuint textureHandle;
glGenTextures(1, &textureHandle);
glBindTexture(GL_TEXTURE_2D, textureHandle);
glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 256, 256, 0, GL_LUMINANCE, GL_HALF_FLOAT_OES, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
assert(GL_NO_ERROR == glGetError()); // this passes
GLuint fboHandle;
glGenFramebuffers(1, &fboHandle);
glBindFramebuffer(GL_FRAMEBUFFER, fboHandle);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textureHandle, 0);
assert(GL_FRAMEBUFFER_COMPLETE == glCheckFramebufferStatus(GL_FRAMEBUFFER)); // this asserts
这与GL_UNSIGNED_BYTE
更换GL_HALF_FLOAT_OES
时工作正常。
这是iOS的限制还是我做错了什么?
答
我发表了一个关于此主题的类似问题here。
看起来OES_texture_float extension目前仅在iPhone 4S和iPad 2上受支持,尽管它在Apple's guide中没有明确提及。
感谢kal21的pointing this out。
你是否设法让它工作到最后?也许与更高版本的iOS? – twerdster 2011-08-22 20:02:33
更新版本的iOS支持EXT_color_buffer_half_float,这是工作所必需的。 – prideout 2014-09-09 00:19:00
骄傲,我有同样的错误。看起来像是不支持在iOS设备上渲染浮动纹理。因为,OpenGL ES 2.0规范将此功能标记为非强制性。你有没有对此做过更多的研究?可以确认这种限制吗? – HARDWARRIOR 2010-10-11 19:21:25