学习OpenGL ES 1.x

20

什么是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个回答

14

如果可以自推荐的话,我建议您阅读我在此处发表的帖子。虽然它并不是最好的OpenGL ES总体介绍,但它很快就会变得非常技术化,但它是我根据编写Molecules的经验对该主题的看法。此外,我刚刚开始阅读《移动3D图形:使用OpenGL ES和M3G》这本书。

我同意通过实践来学习是最好的方式。我最初对OpenGL一无所知,三个星期后已经在App Store中提交了Molecules供审核。一旦您有了明确的目标(“好的,我需要绘制一个3D球”,“现在我需要按需旋转它”),就很容易找到适用于正在处理的任务的示例或文档部分。

有许多代码示例,尽管其中很多使用了不受OpenGL ES支持的即时模式和其他调用。 我很想通过发布Molecules的源代码来补充这个列表,但是苹果的NDA迄今为止阻止了这一点。 Molecules的源代码现在可用

我所授课的OpenGL ES 1.1视频现在可以在我的iTunes U春季课程中下载,其中包括此处。该课程的笔记可以在此处找到。同时,下学期的视频中也有关于OpenGL ES 2.0的课程。

此外,Philip Rideout发布了一本名为iPhone 3D编程的优秀OpenGL ES 1.1和2.0开发书籍,强烈推荐阅读。


@Brad:感谢你在iTunes U上发布了那门课程。我一直在寻找OpenGL资源,这篇帖子(特别是讲座)真的帮了我很多。 - Linuxios

5

iPhone SDK本身就有一些文档。

除此之外,只需利用您所了解的OpenGL知识(或通过其他途径学习),并忘掉所有被声明为“旧垃圾”的东西(显示列表、立即模式、在OpenGL中不直接与仅绘制三角形相关的事物)。基本上,要忘掉OpenGL 3.0中已经被废弃的所有内容。

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



3

提供信息,Brad Larson的‘Molecules’代码现已公开在这里


3

2

你可能想要查看Jef LaMarche在iPhone上使用OpenGL ES的优秀教程


1
如果您已经下载了iPhone SDK示例,请查看crash landing的EAGLview文件。这是一个相当直接的GLES视图实现,可以被导入并在另一个项目中相对干净地使用。该项目中还有另一个名为Texture2d(如果我没记错的话)的类,如果您想要使用GLES进行2D渲染,那么它也非常有趣。

1

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

首先为自己设定一个目标(例如实现粒子系统。这包括使用混合模式、纹理、顶点颜色、批处理和变换),然后从最简单的元素开始——绘制和旋转四边形。从那里开始添加纹理、添加更多的四边形等等......

在这个过程中,你需要一些关于语法的信息——这些可以在许多书籍中找到,但最好(非常无聊)的来源是规范委员会的出版物,可以在这里找到:http://www.khronos.org/opengles/spec/

即使有了这些,你也会遇到很多问题,那么,一旦你遇到问题,就去找你在这种情况下最好的朋友:演示和示例!
你可以在网上和苹果网站上找到许多iPhone的示例源代码,所以下载它们,复制粘贴你需要的内容,然后根据你的需求进行修改。

玩得开心。


0

我也可以建议使用Android - 它很容易获取,你可以很快拥有一个工作的模拟器。而且,据我所知,它使用v1.0版本。
可能会有更多的教程,但是即使是由Google提供的APIDemos也有OpenGL ES的介绍。我肯定会发现它很有帮助。


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