我有一个iPhone游戏,我正在移植到PC上。游戏使用OpenGL ES 2(着色器),我将决定使用哪个版本的OpenGL。
是否应将所有着色器移植到OpenGL 2(并支持较旧的硬件)?或者我应该移植到OpenGL 3(我还不是很了解,但着色器似乎更兼容)?哪个更容易移植?
发布于 2012-04-10 15:51:09
由于OpenGL ES 2是桌面OpenGL 2的一个子集,如果你不需要你的游戏在PC上使用更高级的技术(如实例化,纹理数组,几何着色器,...,你的ES设备从未听说过的东西),你应该可以使用2.x。
请记住,在桌面GL2中可以使用即时模式和固定函数管道并不意味着你应该这样做。您可以编写完全向前兼容的现代GL (VBO、着色器等)在OpenGL 2.0中就可以了。另一方面,GL 3.x与以前的版本并没有什么不同,它只是带来了一些额外的功能,如果需要的话,可以在以后包含这些功能。在GL 2或GL 3之间没有真正的决定,只在基于现代VBO着色器的GL和旧的基于即时模式固定函数的GL之间,并且由于您的游戏已经使用GL ES 2.0,您已经做出了正确的决定。
实际上,您的着色器与GL 2比与3更兼容,因为ES 2使用旧的属性/变化语法。但顺便说一句,没有什么能真正推动你的决定,因为你可能不得不稍微改变一下你的着色器(例如,处理/删除精度限定符)。
https://stackoverflow.com/questions/10083122
复制相似问题