1.FBO卫袒,RBO,VBO:
FBO:(frame buffer object) 幀緩沖對象
RBO(Render Buffer Object)渲染緩沖對象
VBO:(Vertex Buffer Object) 頂點緩沖對象
image.png
三維物體渲染到窗體有兩種路徑:
- 1.三維物體->FBO->Texture->窗體
-
2.三維物體->窗體
image.png
2. Per-pixel-shade和per-vertex-shade:
shader的寫法有所不同茄厘,per-pixel-shade的diffuse和ambient寫在頂點著色器里,光照寫在片段著色器中谈宛。
image.png
3.VBO和ply讀取
-
相關函數(shù):
生成VAO,VBO,EBO
image.png
-
概念介紹
VBO:頂點數(shù)據(jù)次哈;
dragon.ply中
一個點數(shù)據(jù)示例:[0.51,0.11,0.95] 包含三維坐標vec3;
wuson.ply中
一個點數(shù)據(jù)示例:[0.51,0.11,0.95吆录,0.2窑滞,0.1,0.7] 包含三維坐標vec3和norm向量vec3
有時頂點數(shù)據(jù)會包含坐標[vec3恢筝,n向量vec3, rgba vec4]葛假,此時一個點數(shù)據(jù)總長為10.
點數(shù)據(jù)保存在vertexs[vNum]中,數(shù)據(jù)類型為GLfloat*
EBO:面數(shù)據(jù)滋恬;
dragon.ply中
一個面數(shù)據(jù)示例:[3,0抱究,52恢氯,3] , mesh[0]表示這個面有3個頂點,mesh[1:4]是三個頂點的索引鼓寺,索引從零開始勋拟。
點數(shù)據(jù)保存在indices[fNum]中,數(shù)據(jù)類型為GLuint*
VAO:頂點數(shù)組妈候,和VBO,EBO綁定敢靡。cpu利用VAO讀取讀取和理解數(shù)據(jù)。
-
讀取過程:
1.初始化
創(chuàng)建VAO,VBO,EBO苦银。
綁定VAO啸胧。
image.png
VBO,EBO分別與VAO綁定赶站。
講頂點數(shù)據(jù)讀入VBO,將面數(shù)據(jù)讀入EBO。
image.png
VAO為CPU解釋解釋數(shù)據(jù)流的含義纺念,不同含義在每一行數(shù)據(jù)中有不同的偏移量贝椿。
image.png
2在display中
綁定VAO,渲染三角形(因為有EBO)。若只有VAO和VBO則渲染頂點陷谱。
image.png