3

这与带有 float 或 half_float 纹理的 OpenGL ES 2.0 :glReadPixels() 有关

我想在渲染后从帧缓冲区对象中读出浮点值。

在 iOS 上,以下

    GLint ext_type;
    glGetIntegerv(GL_IMPLEMENTATION_COLOR_READ_TYPE, &ext_type);

真的只是告诉我们glReadPixels只允许读出 GL_UNSIGNED_BYTE。

有没有办法使用本文中相关的纹理缓存技术来解决这个问题?

背后的故事是,我正在尝试使用 OpenGL ES 2.0 片段着色器(类似于 Dominik Göddeke 的可信赖的 ol'教程示例)为任意大小的矩阵(例如,100,000 x 100,000)实现通用矩阵乘法例程。 glReadPixel这里并不是特别合作,因为它将帧缓冲区浮点数转换为 GL_UNSIGNED_BITS,导致精度损失。

4

1 回答 1

1

我问了一个类似的问题,我认为答案是否定的,只是因为纹理缓存(作为 API)使用 CoreVideo 像素缓冲区并且它们目前不支持浮点格式。

于 2013-01-13T04:50:55.987 回答