2012-04-10 77 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。但是,作爲一個附註,沒有什麼可以真正推動你的決定,因爲無論如何你可能必須改變你的着色器(例如處理/刪除精確限定符)。