我有一款iPhone游戏,我正在移植到PC上。游戏使用OpenGL ES 2(着色器),我决定使用哪个版本的OpenGL。
我应该将所有着色器移植到OpenGL 2(并支持旧硬件)吗?或者我应该移植到OpenGL 3(我还不太清楚,但似乎着色器更兼容)?哪个更容易移植?
答案 0 :(得分:2)
由于OpenGL ES 2是桌面OpenGL 2的一个子集,如果你不需要你的游戏在PC上使用更高级的技术(比如实例化,纹理数组,几何着色器,等等),你应该可以很好地使用2.x. ..,ES设备从未听说过的事情。)
请记住,您可以在桌面GL 2中使用立即模式和固定功能管道并不意味着您应该这样做。您可以在OpenGL 2.0中编写完全向前兼容的现代GL(VBO,着色器......)。另一方面,GL 3.x与以前的版本没有任何不同,它只是带来了一些额外的功能,如果需要,可以在以后加入。 GL 2或3之间没有真正的决定,只有现代的基于VBO着色器的GL和旧的基于立即模式固定功能的GL之间,以及已经使用GL ES 2.0的游戏已经做出了正确的决定。
实际上,由于ES 2使用旧属性/变化语法,因此着色器与GL 2的兼容性将高于3。但是作为旁注,没有什么可以真正推动你的决定,因为你可能不得不稍微改变你的着色器(例如处理/删除精度限定符)。