哎哟!
我一直在考虑更新一些旧的测试代码,试图重新了解添加到 GLKit 的新功能。到目前为止,我已经设法设置了一个 GLKViewController 并开始渲染一些基本形状,但一直在努力寻找任何关于 GLKBaseEffect 的体面信息。
GLKBaseEffect 文档指出:
在初始化时,您的应用程序首先创建一个 OpenGL ES 2.0 上下文并使其成为当前的。然后,它分配并初始化一个新的效果对象,配置它的属性,并调用它的 prepareToDraw 方法。绑定效果会导致着色器被编译并绑定到当前的 OpenGL ES 上下文。基本效果还需要应用程序提供顶点数据。要提供顶点数据,请创建一个或多个顶点数组对象。对于着色器所需的每个属性,顶点数组对象应启用该属性并指向存储在顶点缓冲区对象中的数据。
我正在努力辨别的是;
我渲染的每个“模型”都需要一个 GLKBaseEffect 对象吗?或者我是否为每个“场景”使用一个 GLKBaseEffect 并在调用 prepareToDraw 之前简单地更改属性?
我已经看过一些关于游戏引擎和渲染器的教程,它们只是为每个模型使用一个 GLKBaseEffect,但是如果可以使用单个实例来实现相同的效果,这似乎完全没有效率。
从阅读文档来看,这似乎是最好的方法,但考虑到我见过这么多人使用多个实例,我开始认为情况并非如此。
任何人都可以对此有所了解吗?GLKit 对 iOS(和我)来说还是相当新的,所以任何信息都将不胜感激。