我對OpenGL毫無經驗,只是開始玩iPhone開發。從谷歌看來,iphone似乎使用了一種特殊類型的opengl(openGL ES)。 openGL ES支持哪些語言?我知道一點C++,但現在我相信我的C和Objective-C比C++更好。OpenGL ES For iPhone
回答
訪問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帶來的樂趣。
如果您之前沒有OpenGL體驗,則需要使用框架。有2個我看過:
SIO2(免費,但你需要支付許可費,如果你想將其包含在已發佈標題)
統一(難學,但顯然更加靈活)。
至於語言,大多數是C或C++。你可以混合使用Objective-C(可以命名爲Objective-C++),它可以很好地編譯,但是當你混合使用UIKit和OpenGL時,真正的麻煩就出現了 - 只要你不這樣做,你應該都會很好無論你喜歡哪種語言。
- 1. 在OpenGL ES中請求DepthBuffer for iPhone
- 2. iPhone OpenGL ES
- 3. Shader for Android OpenGL ES
- 4. iPhone的OpenGL-ES:在OpenGL UISwipeGestureRecognizer
- 5. iPhone OpenGL ES Texture2D Masking
- 6. OpenGL ES iPhone紋理
- 7. Fullscreen texture iPhone OpenGL ES
- 8. Iphone opengl es - glu,glPushName
- 9. iPhone的OpenGL-ES:從移動
- 10. iPhone OpenGL ES - 如何選擇
- 11. OpenGl ES iPhone,奇怪的行
- 12. OpenGL ES的問題(iPhone)
- 13. 橡皮擦在OpenGL ES iphone
- 14. OpenGL到OpenGL-ES - glRectf()
- 15. 如何在OpenGL ES for iPhone中顯示視頻?
- 16. 基本的2D紋理Howto for iPhone OpenGL ES
- 17. 從OpenGL ES 1.1過渡到OpenGL ES 2.0
- 18. OpenGL或OpenGL ES
- 19. 在OpenGL ES for iOS中移動對象?
- 20. OpenGL ES for Android,造型傢俱
- 21. OpenGL ES單元
- 22. 爲iPhone製作PNG文件OpenGL ES
- 23. iPhone:Quartz2d與OpenGL ES
- 24. Opengl es高分辨率iphone 4
- 25. iPhone OpenGL ES Paint App刷機效果
- 26. 移植的DirectX的OpenGL ES(iPhone)
- 27. iOS,iPhone,iPad(OpenGL ES)支持PBuffer嗎?
- 28. iPad或iPhone支持OpenGL ES 2.0嗎?
- 29. OpenGL ES的iPhone - 繪製反鋸齒線
- 30. OpenGL ES iPhone從IB切換到initWithFrame
我不同意推薦最終依賴於OpenGL的分層軟件,因爲這通常是對GL新手的好建議。此外,混合UIKit和OpenGL的評論在誤導和錯誤之間存在一些誤區而沒有很多進一步的解釋/上下文。預計iOS上的任何OpenGL開發人員都將使用UIKit和OpenGL。如果不使用UIKit,您無法在iOS中創建可見的繪圖表面。 – user501138 2016-02-21 00:20:44
感謝您的反饋。請注意,我在5年前寫了這個答案......當時情況有點不同。可能它不再相關? – makdad 2016-05-03 13:47:36