2010-07-20 32 views
3

我不確定這個問題已經被問到了,我的stackoverflow-fu已經失敗了。iPhone的成本與收益 - OpenGL ES 1.x vs 2.0

所以我正在構建一個基於OpenGL-ES的iPhone遊戲,幾乎所有我在野外發現的例子都在OpenGL ES 1.x上。這是很好的,因爲至少我(重新)瞭解了很多關於OpenGL的知識。

既然新設備支持OpenGL-ES 2.0,我想知道是否有人將他們的OpenGL-ES 1.x應用程序移植到2.0,如果有的話,是否有任何性能或效率提升?例如,我可以使用glLightf(blahblah)設置我的燈光(在1.x中),並且我完成了燈光...但顯然該函數在2.0中不存在,所以我不得不自己編寫它?那麼,沒有經驗的「編程管道」如何實現這一目標呢? 2.0中是否有默認的燈光實現?

我可能會說出無知,因爲我沒有真正發現任何可靠的iPhone專用OpenGL-ES 2.0信息。

在此空間的任何幫助將不勝感激。

回答

3

從我讀過的書中,以及在我有限的時間內使用它,從1.1版轉到OpenGL ES 2.0並不是性能問題,而是性能問題。如果您觀看掌握OpenGL ES for iPhone視頻(通過iPhone開發人員計劃網站獲得的iPhone Getting Started Videos的一部分),Apple甚至會說如果您可以在OpenGL ES 1.1下進行所需的操作,則無需進入2.0。

OpenGL ES 2.0的完全可編程管道可以使得簡單的操作比在1.1中做同樣的事情要困難得多,因爲你需要爲以前爲你處理的部分管道編寫代碼。但是,2.0會產生許多令人驚歎的效果,您在1.1中無法做到。例如,我建議您觀看OpenGL ES着色和高級渲染以及聯盟的圖形和媒體狀態,以瞭解使用OpenGL ES 2.0的可能性。

迄今爲止,很少有應用程序使用OpenGL ES 2.0,因爲有限的iPhone設備子集具有兼容的GPU,缺乏文檔和示例。我認爲,隨着iPhone 3G S之前的設備逐漸淘汰,我們將看到這一開始發生變化。尤其是,iPad已經從發佈開始支持OpenGL ES 2.0,所以如果你正在爲它設計一個應用程序,你可以依靠這些功能來實現。更多的代碼示例和文檔肯定會在不久的將來出現。

+0

感謝您的解釋,很遺憾,我找不到一個標有「Mastering OpenGL ES for iPhone」視頻的曲目,通過您提供的入門鏈接...我發現了WWDC曲目。在您的研究中,您是否發現過有關在未來的iOS設備上棄用OpenGL-ES 1.x的信息? – 2010-07-21 18:57:05

+0

@T Reddy - 點擊「入門視頻」鏈接,查看iTunes中的「高級視頻」曲目。我提到的兩個視頻就在那裏。至於貶低,我沒有看到他們爲什麼很快就會有這個原因。桌面上的OpenGL仍然支持舊的所有功能。 – 2010-07-21 19:47:31

+0

缺少示例的原因是ES2基於100%shaders。如果你研究着色器(使用任何OpenGL語言),你可以完全掌握它。困難的部分是找到正確的算法(例如:如何進行定向燈?有正視圖?)。我打算支持混合ES1/2代碼,但巴西新款iOS設備的成本太高(並且模擬器不夠用)。 – 2011-03-05 21:36:55