是否可以通过iOS纹理缓存API从OpenGL ES帧缓冲区中读取浮点数?

这与OpenGL ES 2.0:glReadPixels()有浮动或half_float纹理有关 。

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

在iOS上,以下内容

GLint ext_type; glGetIntegerv(GL_IMPLEMENTATION_COLOR_READ_TYPE, &ext_type); 

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

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

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

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