我正在使用OpenGL ES 2.0在Android应用中实现HDR渲染管道,我遇到浮点纹理问题,GL_FLOAT或GL_HALF_FLOAT_OES都不能用作纹理类型,因为这样会在纹理时给出GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT用作帧缓冲目标。
如果我将类型设置为GL_UNSIGNED_BYTE,则代码可以正常工作,因此它实际上只是引起它的浮点问题。
设备支持扩展GL_OES_texture_float,GL_OES_texture_half_float,GL_EXT_color_buffer_float和GL_EXT_color_buffer_half_float。
我正在使用GL_NEAREST作为GL_TEXTURE_MAG_FILTER / GL_TEXTURE_MIN_FILTER,但设备确实支持GL_OES_texture_half_float_linear,因此GL_LINEAR也可以正常工作。
该设备支持npot纹理,但即使功率为2,它仍然会失败。
谢谢!
答案 0 :(得分:1)
您确定扩展程序GL_EXT_color_buffer_half_float已在您的设备中公开吗?
根据Imagination论坛的this question,S4支持扩展但不能使用。
[..] GL_OES_texture_float允许应用程序使用浮点纹理。您需要一个额外的扩展来渲染浮点目标(例如EXT_color_buffer_half_float)。不幸的是,这个扩展没有暴露在PowerVR Galaxy S 4上。