只是对iOS 5.0框架中的GLKit有一个简单的问题。

如果使用GLKTextureLoader,它是否只是将纹理加载到当前 Activity 的纹理单元中?我已经看过示例,但是您看不到要说变量x中的GLKTextureInfo绑定到GL_TEXTURE0的任何地方。

我看过一些示例,其中人们将glActiveTexture与GLKTextureLoader结合使用,但看起来纹理只是自动地锁定在 Activity 纹理单元中。加载后,我只需要传递纹理坐标?

提前致谢。

最佳答案

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

glActiveTexture(GL_TEXTURE0); // to specify texture unit 0
glBindTexture(textureInfo.target, textureInfo.name);

我强烈推荐Learning OpenGL ES for iOS: A Hands-On Guide to Modern 3D Graphics Programming这本书,因为它很好地展示了GLKit类中发生的事情。您还可以引用我编写的此演示代码,该代码使用GLKTextureLoader:https://github.com/joekim/MobileMeetup/tree/master/GLKitDemo

10-05 20:26