2008-09-16 138 views
21

加快OpenGL ES 1.x速度的最快方法是什么?我们假设我对OpenGL一无所知(这并不完全正确,但是自从我上次使用OpenGL以来已经有一段时间了)。我最感兴趣的是学习iPhone的相关开发,但我很想了解它如何在其他平台上工作。学习OpenGL ES 1.x

我发现这本书OpenGL ES 2.0的编程指南,但我担心它可能不是最好的方法,因为它侧重于2.0,而不是1.x的我的理解是2.0不会与1.x向后兼容,所以我可能会错过一些重要的概念。

注意:有关学习一般OpenGL的答案,看到https://stackoverflow.com/questions/62540/learning-opengl


一些资源,我发现:

回答

5

iPhone SDK本身有一些文档。除了这些之外,只需要知道OpenGL的知识(或者通过其他方式学习),并忘记所有“老式的”东西(显示列表,即时模式,OpenGL中的东西,但不是直接与绘制三角形相关)。基本上,忽略了在OpenGL 3.0中宣称不赞成的所有内容。

GL ES 1.x适用于非常简单的设备。你有什么是绘制几何(顶点缓冲),管理纹理和设置一些固定功能状态(照明,纹理组合器)的方法。这几乎是所有这一切。

+1

其中“老克里斯” - GL_QUADS – bobobobo 2010-11-14 00:43:51

1

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

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

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

玩得开心。

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中进行审查。一旦你有一套明确的目标(“好的,我需要绘制一个3D球体”,“现在我需要按需旋转它”),很容易找到适用于你正在研究的任务。

这里有很多代码示例,尽管其中很多代码都使用OpenGL ES中不支持的即时模式和其他调用。 我很想通过向Molecules发布源添加到列表中,但是Apple的NDA迄今阻止了这一点。 Molecules is now available的源代码。

作为更新(11/16/2010),我在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。我强烈推荐它。

+0

这是个酷男!非常感谢。 – Thanks 2009-07-16 15:23:53

3

仅供参考,Brad Larsons分子编码现已出售here

1

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

0

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

2

一些优秀的教程,你可能想看看this优秀的杰夫·拉马什的教程OpenGL ES的iPhone上。