我有一个使用 glKit 运行的游戏,并且想在每帧渲染后使用着色器添加一些后期处理效果。
是否可以在 glKit 下做到这一点?
这个有可能。
您将需要创建自己的屏幕外帧缓冲区对象和关联的纹理。然后调用 [GLKView bindDrawable] 将进一步渲染指向 GLKView 的帧缓冲区。然后,您可以执行更多渲染,包括从您之前渲染到的纹理中读取。
帧缓冲区 API 是所有标准的 OpenGL ES 调用,您可以在任何 OpenGL ES 2.0 书籍中阅读。Apple 在http://developer.apple.com/library/ios/ipad/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/也有一些 iOS 特定的文档