OpenGLES圖元的繪制方式有如下幾種
繪制方式 | 含義 |
---|---|
GL_POINTS | 點(diǎn) |
GL_LINES | 線段 |
GL_LINE_LOOP | 線圈 |
GL_LINE_STRIP | 多段線 |
GL_TRIANGLES | 三角形 |
GL_TRIANGLE_STRIP | 三角形條帶 |
GL_TRIANGLE_FAN | 三角形扇 |
在繪制圖形時(shí)候我們往往用到更多的是三角形的繪制遇八,所以詳細(xì)講解三種三角形繪制的方式茂浮,點(diǎn)碍沐、線點(diǎn)繪制從字面意思也很好理解佃扼。
先直觀的從下圖感受這三種方式的不同
GL_TRIANGLES是以為三個(gè)點(diǎn)繪制一個(gè)三角形升略。如上圖看到的V0微王、V1屡限、V2繪制成一個(gè)三角形,V3炕倘、V4钧大、V5繪制成另一個(gè)三角形。
注意:如果頂點(diǎn)個(gè)數(shù)不是3或者3的倍數(shù)激才,多出來(lái)的頂點(diǎn)自動(dòng)忽略GL_TRIANGLE_STRIP的規(guī)律是:
構(gòu)建當(dāng)前三角形的頂點(diǎn)的連接順序依賴于要和前面已經(jīng)出現(xiàn)過(guò)的2個(gè)頂點(diǎn)組成三角形的當(dāng)前頂點(diǎn)的序號(hào)的奇偶性(如果從0開(kāi)始):
如果當(dāng)前頂點(diǎn)是奇數(shù):組成三角形的頂點(diǎn)排列順序:T = [n-1 n-2 n].
如果當(dāng)前頂點(diǎn)是偶數(shù):組成三角形的頂點(diǎn)排列順序:T = [n-2 n-1 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蟀悦,否則不能繪制任何三角形媚朦。GL_TRIANGLE_FAN繪制各三角形形成一個(gè)扇形序列,以v0為起始點(diǎn)日戈,[V0,V1,V2]询张、[V0,V2,V3]、[V0,V3,V4]浙炼。