【发布时间】:2019-02-23 14:48:19
【问题描述】:
Apple 表示使用 OpenGL ES 构建的应用将继续在 iOS 12 中运行,但在 iOS 12 中已弃用 Open GL ES。以前使用 OpenGL ES 的游戏和图形密集型应用现在应该采用 Metal。
但我不想将我的应用程序从 OpenGL 迁移到 Metal,因为它与 Android 的代码相同,我不想创建两个单独的分支,所以我可以做些什么来在未来的 iOS 版本中继续使用 OpenGL ?
【问题讨论】:
Apple 表示使用 OpenGL ES 构建的应用将继续在 iOS 12 中运行,但在 iOS 12 中已弃用 Open GL ES。以前使用 OpenGL ES 的游戏和图形密集型应用现在应该采用 Metal。
但我不想将我的应用程序从 OpenGL 迁移到 Metal,因为它与 Android 的代码相同,我不想创建两个单独的分支,所以我可以做些什么来在未来的 iOS 版本中继续使用 OpenGL ?
【问题讨论】:
我推荐 OpenGL 和 Metal 在 iOS 上一起开发,新功能配合 Metal 使用。
【讨论】:
你或多或少没有。
Apple 已经明确表示,他们对在他们控制的任何平台上进一步支持 OpenGL ES 不感兴趣。将来,您将使用 Metal,否则您将没有加速 3D 图形。这些将是您的选择。
有个项目通过在 Metal 之上实现 ES 层在此类平台上公开 OpenGL ES。例如MoltenGL,但那个显然不是免费的。
【讨论】:
我在我的商业产品中使用MetalANGLE,它是免费和开源的,具有非病毒许可,作为(几乎)替代 GLKit。我不必对使用 OpenGL ES 的代码部分进行任何更改,并且只对我的 View 和 ViewController 类的初始化方式进行了微小的更改。
我从 GLKit 迁移到 MetalANGLE 已经六个月了,唯一出现的问题是缩放问题,这确实是我的应用程序中的一个错误:在 MetalANGLE 中,我需要从视图的 contentScaleFactor 中检索 UI 比例,而不是[[UIScreen mainScreen] scale].
没有显示故障、崩溃、减速或任何图形渲染问题。
因此,我认为没有理由为 MoltenGL 付费而不是使用免费的 MetalANGLE。
【讨论】: