0

我正在使用 OpenGL ES 2.0 在 Android 应用程序中实现 HDR 渲染管道,但浮点纹理存在一些问题,GL_FLOAT 或 GL_HALF_FLOAT_OES 都不能用作纹理类型,因为当纹理用作帧缓冲区目标。

如果我将 type 设置为 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 的幂,它仍然失败。

谢谢!

4

1 回答 1

1

您确定扩展 GL_EXT_color_buffer_half_float 已暴露在您的设备中吗?

根据Imagination 论坛上的这个问题,S4 支持扩展,但不能使用。

[..] GL_OES_texture_float 允许应用程序使用浮点纹理。您需要一个额外的扩展来渲染到浮点目标(例如 EXT_color_buffer_half_float)。不幸的是,这个扩展并没有在 PowerVR Galaxy S 4 上公开。

于 2013-07-31T14:08:18.993 回答