iOS 5.0 GLKit GLKTextureLoader- glBindTexture 在哪里发生?

rob*_*che 5 opengl-es ios opengl-es-2.0 ios5

只是有一个关于 iOS 5.0 框架中的 GLKit 的快速问题。

如果您使用 GLKTextureLoader,它是否只是在当前活动的纹理单元中加载纹理?我看过例子,我没有看到任何地方你必须说变量 x 中的 GLKTextureInfo 绑定到 GL_TEXTURE0。

我见过人们将 glActiveTexture 与 GLKTextureLoader 结合使用的例子,但看起来纹理只是自动锁定到活动纹理单元中。一旦我加载它,我只需要传入纹理坐标?

提前致谢。

jan*_*ins 4

GLKTextureLoader 加载 GLKTextureInfo 对象后,您就可以自己绑定纹理了。因此,当 GLKLTextureLoader 完成加载时,您加载的纹理不会绑定到任何纹理单元。当你准备好绘画时,你可以调用:

glActiveTexture(GL_TEXTURE0); // to specify texture unit 0
glBindTexture(textureInfo.target, textureInfo.name);
Run Code Online (Sandbox Code Playgroud)

我强烈推荐《学习 OpenGL ES for iOS:现代 3D 图形编程实践指南》一书,因为它很好地演示了 GLKit 类内部发生的情况。您还可以参考我编写的演示代码,它使用 GLKTextureLoader:https://github.com/joekim/MobileMeetup/tree/master/GLKitDemo