学习OpenGL ES 1.x

时间:2008-09-16 13:40:05

标签: iphone 3d opengl-es

在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


我发现了一些资源:

9 个答案:

答案 0 :(得分:14)

如果我可以填写自己的作品,我会引导您到我http://www.sunsetlakesoftware.com/2008/08/05/lessons-molecules-opengl-es的帖子。这不是OpenGL ES的最佳整体介绍,而且它的技术相当快,但是我从写作Molecules的经验来看这个主题。另外,我刚开始阅读这本书"Mobile 3D Graphics: with OpenGL ES and M3G"

我同意这样的建议,即最好的学习方法是做。我开始对OpenGL一无所知,三周后在App Store中有Molecules进行审查。一旦你有一套明确的目标(“好的,我需要绘制一个三维球体”,“现在我需要按需旋转它”),很容易找到适用于仅仅的目标的示例或部分文档你正在做的任务。

有许多代码示例,尽管其中很多使用立即模式和OpenGL ES不支持的其他调用。 我希望通过将源代码发布到Molecules来添加到列表中,但是到目前为止,Apple的NDA已经阻止了这一点。 Molecules is now available的源代码。

作为更新(2010年11月16日),我在OpenGL ES 1.1上讲授的课程视频现在可以作为my course on iTunes U的一部分下载。可以找到该会话的注释here。我将很快用本周的OpenGL ES 2.0课程更新秋季学期视频。

与此同时,Philip Rideout发布了一本关于iPhone的OpenGL ES 1.1和2.0开发的优秀书籍,名为iPhone 3D Programming。我强烈推荐它。

答案 1 :(得分:5)

iPhone SDK本身有一些文档。

除此之外,只需了解你对OpenGL的了解(或通过其他方式了解),并忘记所有“旧的”事物(显示列表,即时模式,OpenGL中但不直接的事物)与绘制三角形有关。基本上,忘掉在OpenGL 3.0中声明已弃用的所有内容。

GL ES 1.x适用于非常简单的设备。你所拥有的是一种绘制几何体(顶点缓冲区),管理纹理和设置一些固定功能状态(光照,纹理组合器)的方法。这就是它的全部内容。

答案 2 :(得分:4)

iphonedevelopment.blogspot.com

有一些优秀的教程

答案 3 :(得分:3)

我在开始使用OpenGL ES时发现这些非常有用,只是为了看看在处理ES而不是普通GL时会采取什么方法。

http://www.zeuscmd.com/tutorials/opengles/index.php

如前所述,iPhone开发者网站也提供了一些样本:

http://developer.apple.com/iphone/library/navigation/Frameworks/Media/OpenGLES/index.html

答案 4 :(得分:3)

仅供参考,Brad Larsons Molecules代码现已可用here

答案 5 :(得分:2)

您可能想看看this优秀的Jef LaMarche的iPhone教程中的OpenGL ES。

答案 6 :(得分:1)

在花费大量时间开发3D之后,我意识到在大多数情况下,最好的方法是通过示例学习并随着它们前进。

首先为自己设定一个目标来实现(例如 - 实现粒子系统。这包括使用混合模式,纹理,顶点颜色,批处理和转换),然后从最简单的元素开始 - 绘图和旋转四边形。从那里继续添加纹理,添加更多四边形等... 虽然这样做你需要一些关于语法的信息 - 你可以在很多书中找到,但最好的(非常无聊的)来源是规范委员会出版物,可以在这里找到:http://www.khronos.org/opengles/spec/

即便如此,你遇到很多问题,一旦遇到问题,请在这些情况下找你最好的朋友:演示和示例!
你可以在网上和苹果网站上找到许多iPhone的示例来源,所以下载它们,复制粘贴你需要的东西,然后改变你的需求。

玩得开心。

答案 7 :(得分:1)

如果您已下载iPhone SDK示例,请查看崩溃登陆的EAGLview文件。这是一个非常直接的GLES视图实现,可以在另一个项目中导入和使用得相当干净。该项目中还有另一个名为Texture2d的类(如果我还记得的话),如果您将GLES用于2D,这个类也非常有趣。

答案 8 :(得分:0)

我可以推荐Android - 它很容易获得,你可以很快拥有一个正常工作的模拟器。此外,据我所知,它使用v1.0。
可能会有更多教程,但即使是Google提供的APIDemos也会介绍OpenGL ES。我当然觉得它很有帮助。