日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenGL-图元装配

發(fā)布時間:2023/12/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenGL-图元装配 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是圖元裝配

在繪制階段,將頂點傳入著色器后,這些頂點通過不同的連接方式會形成不同的顯示效果,這時候就需要用到圖元裝配方式來確定最終顯示出來的效果。OpenGL中一共提供了10種圖元裝配方式,平時開發(fā)中使用最多的方式為GL_TRIANGLE_FAN。

圖元裝配種類和效果

圖元裝配種類解釋
GL_POINTS點。所有頂點不連接,直接以點的形式顯示。
GL_LINES線。每兩個頂點相連接,每個頂點不復(fù)用,形成多條線。
GL_LINE_STRIP線帶。每兩個頂點相連接,除首、尾頂點外的其他頂點復(fù)用,形成不閉合的線帶。
GL_LINE_LOOP線環(huán)。每兩個頂點相連接,所有頂點可復(fù)用,形成閉合的線環(huán)。
GL_POLYGON多邊形。所有頂點相連接,形成凸多邊形。
GL_TRIANGLES三角形。每三個頂點相連接,頂點不復(fù)用,形成三角形。
GL_TRIANGLE_STRIP三角形帶。每三個頂點相連接,頂點復(fù)用,形成三角形帶。
GL_TRIANGLE_FAN三角形扇。以某個頂點作為公用頂點,和其他相鄰的兩個頂點相連接,組合成多個相鄰的三角形,形成三角形扇。
GL_QUADS四邊形。每四個頂點相連接,頂點不復(fù)用,形成四邊形。
GL_QUAD_STRIP四邊形帶。每四個頂點相連接,頂點復(fù)用,形成四邊形帶。

代碼使用

Begin(GLenum primitive, GLuint nVerts, GLuint nTextureUnits = 0)

通過GLBatch對象調(diào)用Begin函數(shù)設(shè)置圖元裝配方式。參數(shù)primitive為圖元裝配方式;參數(shù)nVerts為頂點個數(shù)。參數(shù)nTextureUnits為紋理坐標(biāo),可選。例如圖中GL_POINTS顯示效果的代碼為:

GLfloat vertexs[18] = {1, -1, 0,-1, -1, 0,-2, 0, 0,-1, 1, 0,1, 1, 0,2, 0, 0};pointBatch.Begin(GL_POINTS, 18);pointBatch.CopyVertexData3f(vertexs);pointBatch.End();

注意

  • 當(dāng)頂點數(shù)量和圖元裝配不匹配時,顯示效果會錯亂。比如圖元裝配設(shè)置為GL_QUADS,但頂點只有6個,這時候頂點不夠用,就只會顯示一個四邊形,另外兩個頂點顯示不出來。
  • 頂點順序不同,顯示效果也不相同。
  • 填充顏色為圖案的顏色。上圖中GL_LINE_LOOP和GL_POLYGON看起來連接方式似乎是一樣的,但其實GL_LINE_LOOP的填充顏色是線的顏色;GL_POLYGON的填充顏色是內(nèi)部封閉空間的顏色。

總結(jié)

以上是生活随笔為你收集整理的OpenGL-图元装配的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。