2012-04-10 93 views
1

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

我应该将所有着色器移植到OpenGL 2(并支持较旧的硬件)吗?或者我应该移植到OpenGL 3(我现在还不太清楚,但看起来着色器更兼容)?哪个端口更容易?

回答

2

因为OpenGL ES 2是桌面OpenGL 2的一个子集,所以如果你不需要你的游戏在PC上使用更高级的技术(如实例化,纹理阵列,几何着色器, ...,你的ES设备从来没有听说过的东西)。

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

实际上,由于ES 2使用旧属性/变化语法,因此其着色器与GL 2的兼容性会高于3。但是,作为一个附注,没有什么可以真正推动你的决定,因为无论如何你可能必须改变你的着色器(例如处理/删除精确限定符)。