渲染到iOS下的浮点纹理

时间:2010-10-03 16:26:26

标签: iphone opengl-es

iPad现在支持OES_texture_half_float 延期。不幸的是,我无法将浮点纹理绑定到帧缓冲对象。这是我的尝试:

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_HALF_FLOAT_OES替换为GL_UNSIGNED_BYTE时,此功能正常。

这是iOS的限制还是我做错了什么?

1 个答案:

答案 0 :(得分:2)

我在此主题here上发布了一个类似的问题。

似乎{4}}目前仅支持iPhone 4S和iPad 2,即使在OES_texture_float extension中没有明确提及。

感谢Apple's guide的kal21。