iPhone成本与收益 - OpenGL ES 1.x vs 2.0

时间:2010-07-20 15:54:57

标签: iphone performance opengl-es

我不确定这个问题是否已被提出过,我的stackoverflow-fu已经失败了。

所以我正在构建一个基于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信息。

非常感谢这方面的任何帮助。

1 个答案:

答案 0 :(得分:3)

从我所阅读的内容,以及我使用它的有限时间开始,从1.1开始的OpenGL ES 2.0并不是性能问题,而是性能问题。如果您观看Mastering 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中无法做到。例如,我建议观看WWDC 2010 session video 417 - OpenGL ES着色和高级渲染以及联盟的图形和媒体状态,以了解使用OpenGL ES 2.0的可能性。

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