20

加快 OpenGL ES 1.x 速度的最快方法是什么?

假设我对 OpenGL 一无所知(这并不完全正确,但距离我上次使用 OpenGL 已经有一段时间了)。我最感兴趣的是学习这个用于与 iPhone 相关的开发,但我也有兴趣了解它如何在其他平台上工作。

我找到了OpenGL ES 2.0 Programming Guide这本书,但我担心它可能不是最好的方法,因为它关注的是 2.0 而不是 1.x。我的理解是 2.0 不向后兼容 1.x,所以我可能会错过一些重要的概念。

注意:有关学习通用 OpenGL 的答案,请参阅https://stackoverflow.com/questions/62540/learning-opengl


我发现的一些资源:

4

9 回答 9

14

如果我可以插入我自己的工作,我会引导您访问我在http://www.sunsetlakesoftware.com/2008/08/05/lessons-molecules-opengl-es上的帖子。这不是对 OpenGL ES 最好的整体介绍,它很快就会变得相当技术性,但这是我从编写Molecules的经验中对这个主题的看法。另外,我刚刚开始阅读“Mobile 3D Graphics: with OpenGL ES and M3G”一书。

我同意最好的学习方式是通过实践的建议。一开始我对 OpenGL 一无所知,三周后,Molecules 在 App Store 中进行了审核。一旦您有了明确的目标(“好的,我需要绘制一个 3-D 球体”、“现在我需要按需旋转它”),就很容易找到仅适用于你正在处理的任务。

那里有很多代码示例,尽管其中很多都使用即时模式和 OpenGL ES 不支持的其他调用。 我很想通过向 Molecules 发布源来添加到列表中,但到目前为止,Apple 的 NDA 阻止了这一点。 Molecules 的源代码现在可用

我在 OpenGL ES 1.1 上教授的课程的视频现在可以作为我在 iTunes U 上的春季课程的一部分下载。可以在此处找到该会话的注释。秋季学期的视频有一个关于 OpenGL ES 2.0 的课程。

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

于 2008-09-20T16:35:54.373 回答
5

iPhone SDK 本身有一些文档。

除此之外,只需了解您对 OpenGL 的了解(或通过其他方式了解),而忘掉所有“老生常谈”的东西(显示列表、即时模式、OpenGL 中但与绘制三角形)。基本上,忘记所有在 OpenGL 3.0 中被声明为弃用的东西。

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

于 2008-09-16T16:22:55.180 回答
4

https://web.archive.org/web/20160309222642/http://iphonedevelopment.blogspot.com/2009/05/opengl-es-from-ground-up-table-of.html有一些优秀的教程

于 2009-06-17T10:14:00.273 回答
3

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

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

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

于 2008-09-18T15:20:12.490 回答
3

仅供参考,Brad Larsons 分子代码现在可在此处获得。

于 2008-11-17T18:28:09.180 回答
2

You might want to take a look at this excellent Jef LaMarche’s Tutorial to OpenGL ES on the iPhone.

于 2010-06-09T18:51:14.380 回答
1

在花了相当多的时间开发 3D 之后,我开始意识到,在大多数情况下,最好的方法是通过示例学习并随着你的进步而进步。

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

即使这样你也会遇到很多问题,好吧,一旦你遇到问题,在这些情况下去找你最好的朋友:演示和示例!
您可以在网上和苹果网站上找到许多 iPhone 的示例源,因此请下载它们,复制粘贴您需要的内容,然后根据您的需要进行更改。

玩得开心。

于 2008-09-17T01:37:39.873 回答
1

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

于 2008-11-17T18:51:25.933 回答
0

我还可以建议 Android - 它很容易获得,并且您可以非常快速地拥有一个工作模拟器。此外,据我所知,它使用 v1.0。
可能会有更多教程,但即使是 Google 提供的 APIDemos 也有对 OpenGL ES 的介绍。我当然发现它很有帮助。

于 2009-02-03T01:17:18.317 回答