理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式
GL_TRIANGLE_STRIP繪制三角形方式很多時(shí)候令人疑惑,在這里對(duì)其運(yùn)作機(jī)理進(jìn)行解釋。
一般情況下有三種繪制一系列三角形的方式,分別是GL_TRIANGLES、GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN。
如下圖所示:
GL_TRIANGLES是以每三個(gè)頂點(diǎn)繪制一個(gè)三角形。第一個(gè)三角形使用頂點(diǎn)v0,v1,v2,第二個(gè)使用v3,v4,v5,以此類推。如果頂點(diǎn)的個(gè)數(shù)n不是3的倍數(shù),那么最后的1個(gè)或者2個(gè)頂點(diǎn)會(huì)被忽略。
GL_TRIANGLE_STRIP則稍微有點(diǎn)復(fù)雜。
其規(guī)律是:
構(gòu)建當(dāng)前三角形的頂點(diǎn)的連接順序依賴于要和前面已經(jīng)出現(xiàn)過的2個(gè)頂點(diǎn)組成三角形的當(dāng)前頂點(diǎn)的序號(hào)的奇偶性(如果從0開始):
如果當(dāng)前頂點(diǎn)是奇數(shù):
組成三角形的頂點(diǎn)排列順序:T = [n-1 n-2 n].
如果當(dāng)前頂點(diǎn)是偶數(shù):
組成三角形的頂點(diǎn)排列順序:T = [n-2 n-21 n].
以上圖為例,第一個(gè)三角形,頂點(diǎn)v2序號(hào)是2,是偶數(shù),則頂點(diǎn)排列順序是v0,v1,v2。第二個(gè)三角形,頂點(diǎn)v3序號(hào)是3,是奇數(shù),則頂點(diǎn)排列順序是v2,v1,v3,第三個(gè)三角形,頂點(diǎn)v4序號(hào)是4,是偶數(shù),則頂點(diǎn)排列順序是v2,v3,v4,以此類推。
這個(gè)順序是為了保證所有的三角形都是按照相同的方向繪制的,使這個(gè)三角形串能夠正確形成表面的一部分。對(duì)于某些操作,維持方向是很重要的,比如剔除。
注意:頂點(diǎn)個(gè)數(shù)n至少要大于3,否則不能繪制任何三角形。
總結(jié)
以上是生活随笔為你收集整理的理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 患癌丈夫打赏女主播500余万后去世 妻子
- 下一篇: 10年都够用!传比亚迪在非洲购买了6座锂