1

我有一个要移植到 PC 的 iPhone 游戏。游戏使用 OpenGL ES 2(着色器),我将决定使用哪个版本的 OpenGL。

我应该将所有着色器移植到 OpenGL 2(并支持旧硬件)吗?或者我应该移植到 OpenGL 3(我还不太了解,但着色器似乎更兼容)?哪个更容易移植?

4

1 回答 1

2

由于 OpenGL ES 2 是桌面 OpenGL 2 的子集,如果您不需要游戏在 PC 上使用更高级的技术(如实例化、纹理数组、几何着色器......您的 ES 设备从未听说过的事情)。

请记住,您可以在桌面 GL 2 中使用即时模式和固定功能管道这一事实并不意味着您应该这样做。您可以在 OpenGL 2.0 中编写完全向前兼容的现代 GL(VBO、着色器等)。另一方面,GL 3.x 与以前的版本并没有什么不同,它只是带来了一些额外的功能,如果需要,可以在以后包含这些功能。GL 2 或 3 之间没有真正的决定,只有现代基于 VBO 着色器的 GL 和旧的基于即时模式固定功能的 GL 之间,并且您的游戏已经使用 GL ES 2.0,您已经做出了正确的决定。

实际上,您的着色器与 GL 2 比 3 更兼容,因为 ES 2 使用旧的属性/可变语法。但作为旁注,没有什么可以真正推动你的决定,因为你可能不得不稍微改变你的着色器,无论如何(例如处理/删除精度限定符)。

于 2012-04-10T07:51:08.867 回答