OpenGL ES 1.1 和 2.0 提供了两种截然不同的 3D 图形处理方式,因此我不知道直接的性能比较有多大意义。如果您创建仅模拟 OpenGL ES 1.1 固定功能管道的 2.0 着色器,那么使用这两种着色器可能会看到相同的性能。这得到了支持Apple 关于 PowerVR SGX 的文档 http://developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/OpenGLESPlatforms/OpenGLESPlatforms.html,其中说:
PowerVR SGX 的图形驱动程序还实现了 OpenGL ES 1.1
通过使用着色器有效地实现固定功能管道。
对于渲染基本的纯色三角形,我建议使用 OpenGL ES 1.1,因为您需要编写的代码要少得多。如果您能够使用 1.1 中的内置功能,通常会更容易定位该版本。通过能够针对(现在)少数使用不支持 2.0 的硬件的 iOS 设备所有者,您还可以拥有稍大的市场。
然而,与 1.1 相比,OpenGL ES 2.0 允许您使用其顶点和片段着色器执行更多操作,因此您可能使用大量几何体执行的一些操作可以由着色器来处理。这可以产生更好看、更快的效果。
例如,我正在使用 2.0 着色器完成分子渲染器的更新,这将显着提高可视化结构的分辨率。我通过使用自定义着色器来为这些结构中的球体和圆柱体生成光线追踪冒名顶替者来完成此操作。这些物体在任何放大倍数下看起来都是完美的圆形和光滑的。在 OpenGL ES 1.1 中使用纯几何体执行此操作几乎是不可能的,因为所需的三角形数量将是荒谬的(而且,广告牌不适用于我的圆柱体,并且这些形状的交集无法在那种情况)。
对于这些设备来说,一百万个三角形可能有点多。在我的基准测试中,旧款 iPhone 3G 每秒处理大约 500,000 个三角形,而第一代 iPad 大约每秒处理 2,000,000 个三角形。我还没有对更快的 iPad 2 进行全面的基准测试,但我的早期测试显示它每秒处理大约 8,000,000 - 10,000,000 个三角形。即使在最快的设备上,在最好的设备上,您也只能在百万个三角形场景中获得约 10 FPS。可能性是,你不需要那么大的几何形状,所以我会先尽我所能来减少它。