我正试图围绕 iPhone OS 上的 OpenGL 对象模型展开思考。我目前正在屏幕上渲染成几个不同UIView
的 s (build on s)。CAEAGLayer
我目前将这些中的每一个都使用为单独EAGLContext
的,每个都有一个颜色渲染缓冲区和一个帧缓冲区。
我在其中渲染了类似的东西,我想在这些实例之间共享纹理以节省内存开销。
我目前的理解是我可以使用相同的设置(一些上下文,每个上下文都有一个 FBO/RBO)但是如果我使用EAGLShareGroup
第一个生成后面的,那么我可以简单地使用纹理名称(GLuints)后面的第一个。这是准确的吗?
如果是这种情况,我想接下来的问题是:让它成为“共享组”有什么好处?我可以重复使用相同的上下文,并将多个 FBO/RBO 附加到该上下文吗?我想我正在努力处理共享组的抽象层,它似乎共享“对象”(纹理和其他命名的东西),但不共享上下文拥有的“状态”(矩阵、启用/禁用状态)。
思考这个问题的最佳方式是什么?
感谢您的任何启发!