2010-10-15 161 views
5

我對OpenGL毫無經驗,只是開始玩iPhone開發。從谷歌看來,iphone似乎使用了一種特殊類型的opengl(openGL ES)。 openGL ES支持哪些語言?我知道一點C++,但現在我相信我的C和Objective-C比C++更好。OpenGL ES For iPhone

回答

4

訪問OpenGL與使用任何C庫相同。如果你可以用C編程,那麼你將能夠處理OpenGL。如果您熟悉將框架和庫添加到Xcode項目中,那麼您應該對OpenGL項目很好。

作爲說明:OpenGL ES並不是iPhone所特有的。 OpenGL ES是OpenGL庫的簡化版本,用於處理移動設備中較小的內存和較慢的處理器。像Android這樣的其他手機也使用它。

與標準OpenGL相比,OpenGL ES的一個好處是,它真的減少了桌面版OpenGL所具有的API調用數量。只保留那些被認爲必要的電話。如果有重複的做同樣的事情,那麼一種方法被刪除。這意味着你有更少的學習。

與標準OpenGL相比,OpenGL ES的壞處在於它真的減少了桌面版OpenGL所具有的API調用數量。在研究如何在OpenGL中做某些事情時,您會一次又一次地發現,在桌面上可以找到一種很酷的方式,但如何在移動版本上做到這一點幾乎找不到任何東西。幸運的是,隨着移動開發變得越來越流行,這將不是一個問題,並且已經出現了許多OpenGL ES書籍(參見Munshi)。

另外,並非所有的OpenGL ES都是相同的。大致上你有OpenGL ES 2.0以及之前的版本,通常稱爲OpenGL ES 1.x。這兩者之間最明顯的區別是可編程流水線(頂點和片段着色器)的集成。如果你用Xcode創建一個基本的OpenGL ES項目,你可以找到一個簡單的例子,說明爲了處理差異版本需要經歷的扭曲。

着色器代碼本身就是一種類似於C的編程語言。有一些怪癖,但這些很快就學會了,而且非常有用。

打電話給我很奇怪,但我喜歡玩Open GL和ES變體。這很難,但獎勵是值得的,因爲您可以訪問功能強大且有用的API。希望你能夠通過早期學習階段,真正享受OpenGL帶來的樂趣。

0

如果您之前沒有OpenGL體驗,則需要使用框架。有2個我看過:

  • SIO2(免費,但你需要支付許可費,如果你想將其包含在已發佈標題)

  • 統一(難學,但顯然更加靈活)。

至於語言,大多數是C或C++。你可以混合使用Objective-C(可以命名爲Objective-C++),它可以很好地編譯,但是當你混合使用UIKit和OpenGL時,真正的麻煩就出現了 - 只要你不這樣做,你應該都會很好無論你喜歡哪種語言。

+0

我不同意推薦最終依賴於OpenGL的分層軟件,因爲這通常是對GL新手的好建議。此外,混合UIKit和OpenGL的評論在誤導和錯誤之間存在一些誤區而沒有很多進一步的解釋/上下文。預計iOS上的任何OpenGL開發人員都將使用UIKit和OpenGL。如果不使用UIKit,您無法在iOS中創建可見的繪圖表面。 – user501138 2016-02-21 00:20:44

+0

感謝您的反饋。請注意,我在5年前寫了這個答案......當時情況有點不同。可能它不再相關? – makdad 2016-05-03 13:47:36