OpenGL ES入門01 渲染流程

1、簡單概念:
  • 1、OpenGL主要是將應用數(shù)據(jù)變成我們所看到的畫面,這樣的過程稱為渲染。
  • 2、幀緩存:在渲染過程中,圖形加速器一般都有一個預先分配好的內(nèi)存區(qū)域來維護顯示列表內(nèi)容(譯者:注意,不一定是主內(nèi)存)。它由顯示內(nèi)存和脫屏內(nèi)存組成。隨著OpenGL的渲染而改變內(nèi)容的那一部分圖形內(nèi)存區(qū)域叫做幀緩存(frame buffer)。
  • 3、CPU將數(shù)據(jù)復制到OpenGL ES的緩存中,GPU獲取到緩存之后進行處理,處理完的數(shù)據(jù)最后返還給CPU,GPU的運算能力是比GPU慢的,所以GPU處理數(shù)據(jù)的同時,CPU也能過繼續(xù)執(zhí)行程序。
2、為緩存提供數(shù)據(jù)的七個步驟
  • 1 、 生成一個緩存的標識符 glGenBuffers(標識符數(shù)量,標識符的名字的地址);
  • 2 、把標識符的緩存指向當前緩存 glBindBuffer(緩存的類型,標識符);
    第一個參數(shù)表示哪一種類型的緩存,只支持兩種緩存,一種是GL_ARRAY_BUFFERGL_ELEMENT_ARRAY_BUFFER,
    GL_ARRAY_BUFFER主要用于頂點屬性數(shù)組,第二個參數(shù)為標識符
  • 3、復制數(shù)據(jù)到緩存中glBufferData(緩存的類型,數(shù)據(jù)的大小,數(shù)據(jù)的地址,緩存在運算中的用途);
  • 4、是否啟用緩存中的數(shù)據(jù) glEnableVertexAttribArray(提供的數(shù)據(jù)形式),是一個枚舉,值分別為: GLKVertexAttribPosition, GLKVertexAttribNormal,GLKVertexAttribColor,GLKVertexAttribTexCoord0,GLKVertexAttribTexCoord1
  • 5、告訴OpenGL ES在緩存中的數(shù)據(jù)的信息glVertexAttribPointer(頂點的位置信息,每個頂點位置的部分數(shù)量,GL_FLOAT,GL_FALSE,步幅,訪問數(shù)據(jù)的地址)
  • 6、繪圖 glDrawArrays(繪制的場景,頂點的位置,渲染頂點的數(shù)量)
  • 7、刪除已經(jīng)生成的緩存及釋放相關的資源glDeleteBuffers(標識符的數(shù)量,標識符)
  • 8、OpenGLES的頂點坐標系的值的范圍是-1.0f到1.0f。當我們需要判斷邊界的時候可以使用-1.0f到1.0f來進行判斷
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容