是否可以通过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像素缓冲区,而且它们目前不支持浮点格式。