首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL vs OpenGL ES和OpenGL 1.x vs OpenGL 2.0学习什么?

OpenGL vs OpenGL ES和OpenGL 1.x vs OpenGL 2.0学习什么?
EN

Stack Overflow用户
提问于 2011-08-30 04:35:58
回答 2查看 1.1K关注 0票数 3

我打算买一本关于OpenGL的书,但我有几个问题想知道我应该学些什么。

我在致力于学习iPhone1.x或iPhone2.0之间左右为难,因为iPhone2.0只存在于3G或更高版本,如果我要开发一个应用程序并将其放在应用程序商店上,我会希望每个拥有OpenGL的人都能使用该应用程序。

另外,我还想尝试一下桌面OpenGL。

因此,我的问题如下:

简单地说,我应该学习什么?如果我学习桌面OpenGL,这会很容易转移到OpenGL ES吗?例如,如果我知道c/c++中的OpenGL,我还会知道OpenGL ES吗,它们有什么主要区别?

另外,你是否建议我同时学习1.x和2.0,因为我之前说过的具体原因,我希望所有iphone用户都能使用我的应用程序,而不仅仅是3G或更高的应用程序?

最后,你有什么推荐的书吗?我真的很喜欢this教程的风格。它非常容易理解,显示了大量代码,并仔细地解释了每一行代码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-30 05:10:10

我自己也遇到了同样的问题,我的决定是使用OpenGL ES 2.0。首先是因为the great majority of iOS devices in use today can run it (iPhone 3GS或更好)。其次,因为OpenGL的未来是着色器,因为它们提供了比ES 1的固定管道更多的灵活性。

也就是说,我会补充说,使用着色器并不容易。在ES2中设置所有东西比在ES1中需要花费更多的精力。更多的事情可能会出错,很多时候你会看到你的程序除了一个空白屏幕什么都没有,让你抓挠你的头并想知道为什么。

不过,一旦你掌握了基础知识,ES2其实并不是那么糟糕。这只是一个相当陡峭的学习曲线。

至于桌面vs ES的问题,我建议您学习ES。它是OpenGL的一个非常好的、功能强大的子集,可以让你编写在更多平台上运行的程序。如果您想要将代码移植到ES,使用完整的OpenGL可能会给您带来麻烦,因为它的某些方面无法转换。

为了让您开始使用OpenGL ES 2,我强烈推荐使用this tutorialthis book

票数 4
EN

Stack Overflow用户

发布于 2011-08-30 05:06:08

OpenGL ES 1.1使用了许多过时的旧功能,而OpenGL ES 2.0使用了仅限着色器的现代顶点数组/缓冲区方法,更适合未来使用。如果你学习桌面GL,你使用OpenGL ES不会有太多困难,因为它们非常相似。

如果你真的想使用老式的OpenGL ES 1.1,那么我建议你学习一下桌面API2.0(最好使用"OpenGL编程指南“/”红皮书“),它将教你旧的即时OpenGL以及现代的顶点数组/缓冲区功能,以及(结合"OpenGL着色语言”/“橙色手册”)可编程着色器的使用。这样,您就可以使用旧式(1/(2))和现代((2)/3/4)桌面GL以及OpenGL ES 1.1和2.0了。

但是如果你想直接从新的和现代的OpenGL编程方式开始(这可能是明智的,尽管旧风格是一种宝贵的经验),那么我宁愿建议使用最新的版本的"OpenGL SuperBible",它将教你现代风格((2)/3/4)桌面OpenGL没有旧的过时的功能。但是,许多OpenGL ES 1.1代码对您没有多大用处(尽管您肯定会理解其原理)。虽然我真的很欣赏我对固定功能老式OpenGL的了解,但我还是建议初学者立即开始使用现代OpenGL,即使对于初学者来说学习起来可能有点困难,因为这是今天(和明天)做硬件加速实时图形的方法。

但真正重要的是,与用心学习API相反,您应该理解3d图形的基本原理和一般原理。然后您将不会有太多困难切换到其他API,如Direct3D,无论如何。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7235660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档