在iOS中,很容易将OpenGL ES 2.0渲染设置为纹理,然后使用这些纹理进行后期处理或作为纹理进行后续渲染。这似乎是跨OpenGL实现的一种相当普遍的方法。都好。根据Apple的OpenGL ES编程指南(参见第28和29页),您还可以创建并绘制多个离屏帧缓冲区对象。他们建议你这样做是为了执行离屏图像处理。但是,我无法找到并描述在呈现给用户之后如何访问用于图像处理或任何其他用途的缓冲区。什么是iOS OpenGL ES 2.0离屏帧缓冲区对象用于?
这些离屏缓冲区可以与非OpenGL框架一起用于图像处理吗?这些缓冲区可以通过CPU读回吗?
有没有人有任何指针或例子?
对不起,也许我不清楚,但不是因为缺乏尝试。我当然明白渲染纹理的价值,我已经将它用于各种事情,包括我在SSAO的尝试。我感到困惑的是,你可以绘制非纹理的屏幕外渲染缓冲区,我不明白你可以用这些做什么。看看苹果的iOS的OpenGL ES编程指南(第28和29页)。它们将屏幕外渲染缓冲区附加到帧缓冲区 - 不是纹理,也不是EAGL屏幕渲染缓冲区。我不知道那些离线渲染缓冲区可以用于什么。 – Chuck
@Chuck我有同样的问题。这是我迄今发现的。根据这里的文档,您可以“在绘制到屏幕外渲染缓冲区之后,您可以使用'glReadPixels'函数将其内容返回到CPU以供进一步处理。”本部分结尾部分:https://developer.apple.com/library/ios/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/WorkingwithEAGLContexts/WorkingwithEAGLContexts.html#//apple_ref/doc/uid/TP40008793-CH103-SW5 – Zhao