2008-09-16 119 views
21

加快OpenGL ES 1.x速度的最快方法是什麼?我們假設我對OpenGL一無所知(這並不完全正確,但是自從我上次使用OpenGL以來已經有一段時間了)。我最感興趣的是學習iPhone的相關開發,但我很想了解它如何在其他平臺上工作。學習OpenGL ES 1.x

我發現這本書OpenGL ES 2.0的編程指南,但我擔心它可能不是最好的方法,因爲它側重於2.0,而不是1.x的我的理解是2.0不會與1.x向後兼容,所以我可能會錯過一些重要的概念。

注意:有關學習一般OpenGL的答案,看到https://stackoverflow.com/questions/62540/learning-opengl


一些資源,我發現:

回答

5

iPhone SDK本身有一些文檔。除了這些之外,只需要知道OpenGL的知識(或者通過其他方式學習),並忘記所有「老式的」東西(顯示列表,即時模式,OpenGL中的東西,但不是直接與繪製三角形相關)。基本上,忽略了在OpenGL 3.0中宣稱不贊成的所有內容。

GL ES 1.x適用於非常簡單的設備。你有什麼是繪製幾何(頂點緩衝),管理紋理和設置一些固定功能狀態(照明,紋理組合器)的方法。這幾乎是所有這一切。

+1

其中「老克里斯」 - GL_QUADS – bobobobo 2010-11-14 00:43:51

1

花了很多時間開發3D之後,我意識到在大多數情況下,最好的方法是通過示例學習,並隨着它們前進。

首先設置自己的目標來實現(例如 - 實現一個粒子系統,包括混合模式,紋理,頂點顏色,批處理和轉換的使用),然後從最簡單的元素開始 - 繪圖並旋轉四邊形。從那裏繼續添加紋理,添加更多的四邊形等... 雖然這樣做,你需要一些有關語法的信息 - 這在許多書中都可以找到,但最好的(非常無聊的)源代碼是規範委員會可以在這裏找到的出版物:http://www.khronos.org/opengles/spec/

即使有這種情況,你會遇到很多問題,好吧,一旦遇到問題,請在這些情況下去找你最好的朋友:演示和例子!
你可以在網上和蘋果網站上找到許多iPhone實例源代碼,所以下載它們,複製粘貼你需要的東西,然後改變你的需求。

玩得開心。

14

如果我可以插入我自己的工作,我會引導您我的帖子在http://www.sunsetlakesoftware.com/2008/08/05/lessons-molecules-opengl-es。這不是OpenGL ES的最佳整體介紹,它的技術相當迅速,但是從我編寫Molecules的經驗來看,這是我的主題。另外,我剛剛開始閱讀本書"Mobile 3D Graphics: with OpenGL ES and M3G"

我同意最好的學習方式是在做的建議。我開始對OpenGL一無所知,三週後又有了Molecules在App Store中進行審查。一旦你有一套明確的目標(「好的,我需要繪製一個3D球體」,「現在我需要按需旋轉它」),很容易找到適用於你正在研究的任務。

這裏有很多代碼示例,儘管其中很多代碼都使用OpenGL ES中不支持的即時模式和其他調用。 我很想通過向Molecules發佈源添加到列表中,但是Apple的NDA迄今阻止了這一點。 Molecules is now available的源代碼。

作爲更新(11/16/2010),我在OpenGL ES 1.1上教授的課程視頻現在可以作爲my course on iTunes U的一部分下載。該會議的筆記可以在here找到。我將很快在本週的OpenGL ES 2.0課程中更新秋季學期視頻。與此同時,Philip Rideout發佈了一本關於iPhone的OpenGL ES 1.1和2.0開發的優秀書籍,名爲iPhone 3D Programming。我強烈推薦它。

+0

這是個酷男!非常感謝。 – Thanks 2009-07-16 15:23:53

3

僅供參考,Brad Larsons分子編碼現已出售here

1

如果您已下載iPhone SDK示例,請查看崩潰着陸的EAGLview文件。這是一個非常簡單的GLES視圖實現,可以在另一個項目中相當乾淨地導入和使用它。該項目中有另一個名爲Texture2d的類(如果我記得),如果您要將GLES用於2D,這也非常有趣。

0

我也可以推薦Android - 它很容易得到,你可以很快得到一個工作模擬器。另外,據我所知,它使用v1.0。
可能會有更多的教程,但即使是由Google提供的APIDemos也有OpenGL ES的介紹。我當然覺得它很有幫助。

2

一些優秀的教程,你可能想看看this優秀的傑夫·拉馬什的教程OpenGL ES的iPhone上。