Learning OpenGL ES 1.x在OpenGL ES 1.x上加快速度的最快方法是什么? 让我们假设我对OpenGL一无所知(这并不完全正确,但是自从我上次使用OpenGL已经有一段时间了)。我对学习有关iPhone相关开发的内容最感兴趣,但也对学习它在其他平台上的工作方式也很感兴趣。 我已经找到了《 OpenGL ES 2.0编程指南》一书,但我担心这可能不是最好的方法,因为它专注于2.0而不是1.x。我的理解是2.0与1.x不向下兼容,因此我可能会错过一些重要的概念。 注意:有关学习通用OpenGL的答案,请参见https://stackoverflow.com/questions/62540/learning-opengl 我发现了一些资源:
如果我可以插入自己的作品,请直接转到http://www.sunsetlakesoftware.com/2008/08/05/lessons-molecules-opengl-es上的文章。这不是对OpenGL ES的最好的整体介绍,并且很快就获得了相当的技术性,但是这是我根据编写分子的经验来解决的。另外,我刚刚开始阅读《移动3D图形:带有OpenGL ES和M3G的书》。 我同意以下建议:最好的学习方法是边做边学。我开始对OpenGL一无所知,三周后又让Molecules进入App Store进行审查。一旦有了清晰的目标集("好,我需要绘制一个3D球体","现在我需要按需旋转它"),就可以轻松地找到示例或文档的一部分,仅适用于您正在处理的任务。 这里有许多代码示例,尽管其中许多代码示例使用即时模式和OpenGL ES不支持的其他调用。 我在OpenGL ES 1.1上教授的课程的视频现在可以作为我在iTunes U上Spring课程的一部分下载。有关该课程的注释,请参见此处。秋季学期的视频在OpenGL ES 2.0上有一个讲授。 此外,Philip Rideout还发布了关于iPhone的OpenGL ES 1.1和2.0开发的优秀著作,称为iPhone 3D编程。我强烈推荐它。 iPhone SDK本身有一些文档。 除此之外,只需了解您对OpenGL的了解(或通过其他方式了解),然后就忽略所有"旧文件"(显示列表,即时模式,在OpenGL中但在与仅绘制三角形不直接相关)。基本上,取消学习在OpenGL 3.0中已声明弃用的所有内容。 GL ES 1.x适用于非常简单的设备。您所拥有的是一种绘制几何图形(顶点缓冲区),管理纹理并设置某些固定功能状态(照明,纹理组合器)的方法。这几乎就是全部。 https://web.archive.org/web/20160309222642/http://iphonedevelopment.blogspot.com/2009/05/opengl-es-from-ground-up-table-of有一些很棒的教程.html 仅供参考,Brad Larsons Molecules代码现在可以在此处使用。 我发现这些在从OpenGL ES开始时非常有帮助,只是为了了解人们在处理ES而不是普通GL时会采取什么方法。 http://www.zeuscmd.com/tutorials/opengles/index.php 如前所述,iPhone开发人员站点也提供了一些示例:
您可能想看一下iPhone上出色的Jef LaMarche的OpenGL ES教程。 如果您下载了iPhone SDK示例,请查看崩溃着陆的EAGLview文件。这是GLES视图的非常简单的实现,可以将其导入并在其他项目中使用得很干净。该项目中还有一个名为Texture2d的类(如果我记得的话),如果您打算将GLES用于2D,这也非常有趣。 花了很多时间开发3D之后,我才意识到,在大多数情况下,最好的方法是通过实例学习并随身携带。 首先为自己设定要实现的目标(例如,实施粒子系统。这包括使用混合模式,纹理,顶点颜色,批处理和变换),然后从最简单的元素开始-绘制和旋转四边形。从那里继续添加纹理,添加更多的四边形,等等。 即使您遇到很多问题,一旦遇到问题,在这种情况下也请最好的朋友:演示和示例! 玩得开心。 我还可以建议您使用Android-它很容易获得,并且您可以非常快速地拥有一个可运行的模拟器。而且,据我所知,它使用的是v1.0。 |