1、簡單概念:
- 1、OpenGL主要是將應用數據變成我們所看到的畫面,這樣的過程稱為渲染。
- 2、幀緩存:在渲染過程中,圖形加速器一般都有一個預先分配好的內存區域來維護顯示列表內容(譯者:注意,不一定是主內存)。它由顯示內存和脫屏內存組成。隨著OpenGL的渲染而改變內容的那一部分圖形內存區域叫做幀緩存(frame buffer)。
- 3、CPU將數據復制到OpenGL ES的緩存中,GPU獲取到緩存之后進行處理,處理完的數據最后返還給CPU,GPU的運算能力是比GPU慢的,所以GPU處理數據的同時,CPU也能過繼續執行程序。
2、為緩存提供數據的七個步驟
- 1 、 生成一個緩存的標識符
glGenBuffers(標識符數量,標識符的名字的地址);
- 2 、把標識符的緩存指向當前緩存
glBindBuffer(緩存的類型,標識符);
第一個參數表示哪一種類型的緩存,只支持兩種緩存,一種是GL_ARRAY_BUFFER
和GL_ELEMENT_ARRAY_BUFFER
,
GL_ARRAY_BUFFER
主要用于頂點屬性數組,第二個參數為標識符 - 3、復制數據到緩存中
glBufferData(緩存的類型,數據的大小,數據的地址,緩存在運算中的用途);
- 4、是否啟用緩存中的數據
glEnableVertexAttribArray(提供的數據形式)
,是一個枚舉,值分別為:GLKVertexAttribPosition
,GLKVertexAttribNormal
,GLKVertexAttribColor
,GLKVertexAttribTexCoord0
,GLKVertexAttribTexCoord1
- 5、告訴OpenGL ES在緩存中的數據的信息
glVertexAttribPointer(頂點的位置信息,每個頂點位置的部分數量,GL_FLOAT,GL_FALSE,步幅,訪問數據的地址)
- 6、繪圖
glDrawArrays(繪制的場景,頂點的位置,渲染頂點的數量)
- 7、刪除已經生成的緩存及釋放相關的資源
glDeleteBuffers(標識符的數量,標識符)
- 8、OpenGLES的頂點坐標系的值的范圍是-1.0f到1.0f。當我們需要判斷邊界的時候可以使用-1.0f到1.0f來進行判斷