ios - 是否可以通过 iOS 纹理缓存 API 从 OpenGL ES 帧缓冲区读取 float ?

标签 ios opengl-es opengl-es-2.0 gpgpu

这与 OpenGL ES 2.0 :glReadPixels() with float or half_float textures 有关.

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

在 iOS 上,如下

    GLint ext_type;
    glGetIntegerv(GL_IMPLEMENTATION_COLOR_READ_TYPE, &ext_type);

实际上只是告诉我们 glReadPixels 只允许读取 GL_UNSIGNED_BYTE。

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

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

最佳答案

我问了a similar question我认为答案是,如果只是因为纹理缓存(作为 API)使用 CoreVideo 像素缓冲区并且它们目前不支持浮点格式。

关于ios - 是否可以通过 iOS 纹理缓存 API 从 OpenGL ES 帧缓冲区读取 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14288391/

相关文章:

iphone - 如何制作 ibeer、imilk、ibug、ibeer 等 iPhone 应用程序

android - 适用于 Android 的 OpenGL ES 2.0 翻译 - 似乎弄乱了矩阵

ios - 如何设置第二个 UIWindow 的方向

ios - 如何处理类之间完成 block 的结果

android - 从 NDK 中获取 SurfaceTexture 的 GL 上下文

android - onPause()/onResume() 中的 GLSurface 问题

ios - OpenGL ES 到 iOS 中的视频(使用 iOS 5 纹理缓存渲染到纹理)

ios - 带有 GLKit 的 GLPaint : flickering when drawing

ios - QuickBlox 视频聊天 : QBRequest. logInWithUserEmail 与 QBChat.instance().connectWithUser

ios - 具有可变参数的通用类型别名