opengl 流程梳理
文章目錄
- 01 頂點數組 索引數組
- 02 頂點著色器和片段著色器
- 03 紋理貼圖
01 頂點數組 索引數組
有兩個數組緩沖區分別保留頂點數組和索引數組,頂點數組保留頂點信息,頂點信息包括頂點坐標,頂點顏色,頂點紋理等。索引數組是圖元裝配時的頂點索引。頂點數組中的解析需要依照glVertexAttribPointer(0, 3, GL_FLOAT,GL_FALSE, 8 * sizeof(GLfloat), (void*)0)函數解析,函數參數的含義:第一個參數表示這是輸入的第幾個變量,這個參數和頂點著色器中的GLSL代碼對應,第2個參數表示此頂點屬性有幾個數據,后面的8 * sizeof(GLfloat)表示每次讀取多少個字節,(void*)0表示在讀取的數據中要偏移幾個數據。
VAO就相當于一次副本備份,以后每次繪圖,直接調用VAO就等于做了上面的所有工作。
02 頂點著色器和片段著色器
著色器的基本格式:輸入數據 、輸出數據、main()函數。著色器代碼GLSL有自己的幾個數據結構,頂點著色器的輸入數據是直接和C++的頂點數據相關聯的,glVertexAttribPointer()函數的第一個參數的值就是著色器代碼的location的值,著色器每一個layout變量都需要一個glVertexAttribPointer()函數來幫助其完成與頂點數組緩沖區的數據交互。頂點著色器的輸出數據會作為片段著色器的輸入數據,片段著色器的輸出數據會作為后續流程的輸入數據。
03 紋理貼圖
紋理貼圖涉及到紋理緩沖區,紋理緩沖區有多個滿足多張貼圖需要,所以需要添加兩個部分第一是將著色器中的紋理采樣區域與紋理緩沖區相應單元綁定,第2是需要將需要使用的紋理單元激活,激活的時候就是導入之前已經讀取的紋理緩沖區對象texture1,texture2. 其它就是設置紋理單元的屬性。
總結
以上是生活随笔為你收集整理的opengl 流程梳理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode: 树
- 下一篇: arcball原理 旋转视图 关键点总结