iPhone 成本与 yield - OpenGL ES 1.x 与 2.0

标签 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.1 到 OpenGL ES 2.0 与其说是性能问题,不如说是功能问题。如果您观看Mastering OpenGL ES for iPhone videos (iPhone 入门视频的一部分可通过 iPhone 开发者计划网站获取),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 的可能性。

迄今为止,由于具有兼容 GPU 的 iPhone 设备子集有限且缺乏文档和示例,因此很少有应用程序使用 OpenGL ES 2.0。我认为随着 iPhone 3G S 之前的设备逐步淘汰,这种情况将会开始改变。特别是,iPad 从发布起就支持 OpenGL ES 2.0,因此,如果您正在为其设计应用程序,则可以依赖这些功能。更多代码示例和文档肯定会在不久的将来出现。

关于iPhone 成本与 yield - OpenGL ES 1.x 与 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3291892/

相关文章:

iphone - iOS:链接第三方框架并在部署时崩溃

iphone - 通过 NSNetService 连接并发送数据

ios - SwiftUI 对其 Root View 的一些 View

ios - 如何在 MKMapView 的 MKAnnotation 上设置图像

Java - 如何在 Java 中创建具有所需大小的变量?

opengl-es - 将 float 打包到 vec4 中——这段代码是如何工作的?

c++ - 如何有效地规范化 vector C++

.net - 如何防止两个应用程序因使用同一个数据库而发生冲突?

c++ - 模型、 View 和投影矩阵不适用于 opengl glsl

android - 在 OpenGL ES 2.0 上使用字节数组的 GL_LUMINANCE