iOS GLKit 立方体的纹理

3

我刚开始学习IOS OpenGL编程。我已经阅读了一些关于OpenGL ES基础的教程,并且能够创建一个小型的演示程序,绘制出我想要的场景中的立方体。但是我想将纹理应用于立方体的面,但是不知道为什么这似乎是一个无法解决的困难任务。我使用的是GLKit,在网上搜索了很多,但是找不到一个简单明了的教程来完成此操作,而不需要看太多其他内容。有人能指导我正确的方向或者提供一个关于此的教程吗?这看起来不应该是一件很难做的事情。我一定是遗漏了什么。。

1个回答

7

这里有很多关于IT技术的教程,你可以去这里看看:http://www.raywenderlich.com/

或者在这里看看:

http://www.raywenderlich.com/5223/beginning-opengl-es-2-0-with-glkit-part-1

这篇文章详细解释了纹理的相关知识:

http://db-in.com/blog/2011/02/all-about-opengl-es-2-x-part-23/

我建议不要直接使用glkit(也许可以使用一些辅助方法),因为即使它比较容易使用,但大部分针对gl es 2.0的教程都不会使用它,这会让你感到困惑。

使用这个来加载纹理:

https://developer.apple.com/library/ios/#documentation/GLkit/Reference/GLKTextureLoader_ClassRef/Reference/Reference.html#//apple_ref/doc/uid/TP40010922

试着用类似“glkit纹理示例”的关键词在谷歌上搜索。

这是我找到的一个链接:

https://github.com/jlamarche/iOS-OpenGLES-Stuff/blob/master/GLKit%20Stuff/GLKBaseEffect%20Drawing%20Example%20with%20Texture/blah/MCViewController.m

大约在第119行,你可以看到如何使用纹理,虽然我没有检查过它是否有效。通常我更喜欢使用普通的opengl,因为即使你有一个简单的程序,着色器文件也非常简单(不到10行)。


我宁愿不自己编写着色器,因为这只是一个非常简单的应用程序,我只渲染立方体而没有其他效果。我似乎找不到一个不使用单独着色器的好例子。 - TommyT39
我已经解决了,但是我遇到了一个奇怪的问题,似乎与内存有关。我正在读取一个二维数组,每次您向前移动一个平方时,我会解析该数组并在您面前的5x5网格中放下一个纹理立方体。当您再次移动时,我会清除数组并重新解析数组,并绘制一组新的立方体。大约移动30次后似乎会崩溃。我不确定是否应该在每次移动之间进行某种释放。我每次都清除保存立方体对象的数组。是否有什么我应该从GL方面做来清除每次使用的资源?我没有得到任何控制台错误。 - TommyT39
这也可能有帮助:http://games.ianterrell.com/how-to-texturize-objects-with-glkit/ - headkit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接