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

4
我不确定这个问题是否已经被问过了,我的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个回答

3
根据我所读和有限的使用经验,从OpenGL ES 1.1转向2.0并不仅仅是性能问题,更多的是关于功能。如果您观看iPhone Developer Program网站提供的iPhone入门视频系列中的Mastering OpenGL ES for iPhone视频,苹果甚至指出,如果您可以在OpenGL ES 1.1下完成所需操作,则不需要升级到2.0。
OpenGL ES 2.0的可编程管线使得简单的操作比1.1更难,因为您需要为以前由系统处理的管线部分编写代码。然而,2.0使得许多惊人的效果成为可能,这是在1.1下无法实现的。例如,我建议您观看WWDC 2010会议视频417 - OpenGL ES Shading and Advanced Rendering以及Graphics and Media State of the Union,了解OpenGL ES 2.0的可能性。
迄今为止,由于兼容GPU的iPhone设备数量有限且缺乏文档和示例,很少有应用程序使用OpenGL ES 2.0。我认为随着早期iPhone 3G S设备的淘汰,这种情况将开始改变。特别是,iPad从推出时就具有OpenGL ES 2.0,因此如果您正在为其设计应用程序,则可以依赖这些功能。更多的代码示例和文档肯定会在不久的将来出现。

感谢您的解释,不幸的是,我无法通过您提供的入门链接找到标记为“Mastering OpenGL ES for iPhone”的视频...我找到的是WWDC轨道。在您的研究中,您是否发现有关未来iOS设备上废弃OpenGL-ES 1.x的任何信息? - Tim Reddy
@T Reddy - 当您单击“入门视频”链接时,请在iTunes中查看“高级视频”轨道。我所提到的两个视频就在那里。至于弃用,我认为它们不会很快被弃用。桌面上的OpenGL仍支持所有旧功能。 - Brad Larson
缺少示例是因为ES2完全基于着色器。如果你学习着色器(在任何类OpenGL语言中),则理解所有内容。困难的部分是找到正确的算法(例如:如何处理方向光?在正交视图下如何操作?)。我计划支持混合ES1/2代码,但在巴西新设备的成本过高(模拟器也不足够)。 - Eduardo Costa
@Eduardo - 在OpenGL ES 2.0和桌面OpenGL的着色器实现中有一些不同之处,因此人们不能仅仅依靠OpenGL参考就能获得良好的例子。然而,这个答案在某种程度上已经过时了,我最近在这里作出的回答更准确地反映了当前情况:https://dev59.com/km445IYBdhLWcg3wmLZd#4787667 。事实上,我教了一整门关于使用OpenGL ES 2.0的课程,所以它绝对变得更加主流。 - Brad Larson

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