gpt4 book ai didi

iphone - 选择 OpenGL ES 1.1 还是 OpenGL ES 2.0?

转载 作者:行者123 更新时间:2023-12-03 18:15:15 26 4
gpt4 key购买 nike

我将启动一个新的跨平台 openGL 项目(主要用于 iPhone 和 PC)。那么主要问题是:针对 OpenGL ES 1.1 还是 OpenGL ES 2.0?或两者?到目前为止,我读到 Open GL ES 1.1 并没有真正被弃用,不是吗?那么 openGL ES 2.0 该怎么说呢?可编程顶点和片段着色器 - 还有其他吗?我听说 alpha 混合会导致性能下降 - 这是真的吗?我认为 openGL ES 2.0 代码也应该在 PC 上运行 - 那么 openGL ES 2.0 真的更具 future 意识吗?

其他开发人员仍在为 OpenGL ES 1.1 或 2.0 进行编码吗?为什么?我假设如果我选择 openGL ES 2.0,则向后兼容 openGL ES 1.1 会产生大量开销。但是有很多 iPhone 不支持 openGL ES 2.0 - 我应该如何实现这一点?有什么经验吗?

我只找到了这个问题:OpenGL ES 1.1 or 2.0 on iPhone有点相关,但对于实现来说并不是很深入......所以欢迎任何建议!非常感谢!

最佳答案

是否使用 OpenGL ES 1.1 还是 2.0 取决于您想要在应用程序中执行的操作以及需要它兼容的设备数量。所有 iOS 设备都支持 OpenGL ES 1.1,其中只有 iPhone 3GS S 和较新的设备(iPhone 3GS、iPhone 4、iPad 以及第 3 代和第 4 代 iPod touch)支持 OpenGL ES 2.0。然而,Apple 目前发布的所有 iOS 设备都与 OpenGL ES 2.0 兼容。不支持 OpenGL ES 2.0 的设备比例每天都在下降。所有 iPad 从发布起就支持 OpenGL ES 2.0,因此,如果您的目标是该外形尺寸,我们保证会获得支持。

OpenGL ES 2.0 和 1.1 使用不同且相当不兼容的渲染管道。 OpenGL ES 1.1 使用固定功能管道,您可以在其中输入几何和纹理数据、设置照明等状态,并让 OpenGL 为您处理其余的事情。 OpenGL ES 2.0 基于可编程管道,您可以在其中提供顶点和片段着色器来处理内容渲染到屏幕的具体细节。

由于您必须编写自己的代码来替换最基本的内置函数,因此使用 OpenGL ES 2.0 来实现简单的 3D 应用程序可能比 OpenGL ES 1.1 需要更多的努力。此外,您发现的大多数示例应用程序和文章都面向 1.1,因此开始使用 2.0 API 可能会更加困难。

然而,事实上,您可以编写自己的例程来处理几何图形和纹理以及它们如何显示到屏幕上,这意味着 OpenGL ES 2.0 可以让您做一些根本不可能的事情(或者需要大量的时间)。大量的努力)在 OpenGL ES 1.1 中完成。其中包括卡通着色和环境光遮挡照明等效果,以及让您做一些有趣的事情,例如将大规模并行工作卸载到 GPU。

如果您想查看一些有关使用 OpenGL ES 2.0 可以做什么的示例,可以观看我教授的有关该主题的类(class)的视频 on iTunes U ,我创建了两个示例应用程序 herehere .

说到跨平台兼容性,着色器在桌面 OpenGL 上可用已有一段时间了,因此您使用 OpenGL ES 1.1 或 2.0 构建的任何内容都应该可以相本地移植到桌面。

如果您可以在 OpenGL ES 1.1 中进行所需的渲染,则可以采用这种方式来提供最大的设备兼容性。然而,目前使用的绝大多数 iOS 设备都支持 OpenGL ES 2.0(我现在找不到这方面的统计数据,但它是基于发货的设备),而且这个数字只会随着时间的推移而增长。 OpenGL ES 2.0 可让您实现一些令人惊叹的效果(请参阅 Epic Citadel),这些效果可以帮助您的应用程序从其他应用程序中脱颖而出。

关于iphone - 选择 OpenGL ES 1.1 还是 OpenGL ES 2.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4784137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com