2010-07-20 78 views
3

我不确定这个问题已经被问到了,我的stackoverflow-fu已经失败了。iPhone的成本与收益 - OpenGL ES 1.x vs 2.0

所以我正在构建一个基于OpenGL-ES的iPhone游戏,几乎所有我在野外发现的例子都在OpenGL ES 1.x上。这是很好的,因为至少我(重新)了解了很多关于OpenGL的知识。

既然新设备支持OpenGL-ES 2.0,我想知道是否有人将他们的OpenGL-ES 1.x应用程序移植到2.0,如果有的话,是否有任何性能或效率提升?例如,我可以使用glLightf(blahblah)设置我的灯光(在1.x中),并且我完成了灯光...但显然该函数在2.0中不存在,所以我不得不自己编写它?那么,没有经验的“编程管道”如何实现这一目标呢? 2.0中是否有默认的灯光实现?

我可能会说出无知,因为我没有真正发现任何可靠的iPhone专用OpenGL-ES 2.0信息。

在此空间的任何帮助将不胜感激。

回答

3

从我读过的书中,以及在我有限的时间内使用它,从1.1版转到OpenGL ES 2.0并不是性能问题,而是性能问题。如果您观看掌握OpenGL ES for iPhone视频(通过iPhone开发人员计划网站获得的iPhone Getting Started Videos的一部分),Apple甚至会说如果您可以在OpenGL ES 1.1下进行所需的操作,则无需进入2.0。

OpenGL ES 2.0的完全可编程管道可以使得简单的操作比在1.1中做同样的事情要困难得多,因为你需要为以前为你处理的部分管道编写代码。但是,2.0会产生许多令人惊叹的效果,您在1.1中无法做到。例如,我建议您观看OpenGL ES着色和高级渲染以及联盟的图形和媒体状态,以了解使用OpenGL ES 2.0的可能性。

迄今为止,很少有应用程序使用OpenGL ES 2.0,因为有限的iPhone设备子集具有兼容的GPU,缺乏文档和示例。我认为,随着iPhone 3G S之前的设备逐渐淘汰,我们将看到这一开始发生变化。尤其是,iPad已经从发布开始支持OpenGL ES 2.0,所以如果你正在为它设计一个应用程序,你可以依靠这些功能来实现。更多的代码示例和文档肯定会在不久的将来出现。

+0

感谢您的解释,很遗憾,我找不到一个标有“Mastering OpenGL ES for iPhone”视频的曲目,通过您提供的入门链接...我发现了WWDC曲目。在您的研究中,您是否发现过有关在未来的iOS设备上弃用OpenGL-ES 1.x的信息? – 2010-07-21 18:57:05

+0

@T Reddy - 点击“入门视频”链接,查看iTunes中的“高级视频”曲目。我提到的两个视频就在那里。至于贬低,我没有看到他们为什么很快就会有这个原因。桌面上的OpenGL仍然支持旧的所有功能。 – 2010-07-21 19:47:31

+0

缺少示例的原因是ES2基于100%shaders。如果你研究着色器(使用任何OpenGL语言),你可以完全掌握它。困难的部分是找到正确的算法(例如:如何进行定向灯?有正视图?)。我打算支持混合ES1/2代码,但巴西新款iOS设备的成本太高(并且模拟器不够用)。 – 2011-03-05 21:36:55