Android OpenGL ES - 繪制線、面

前言

之前一篇文章講了如何繪制點(diǎn),所謂兩點(diǎn)成線,三點(diǎn)成面。一個立體圖形就是由很多面組成,在OpenGL ES中,面特指一個三角形。
繪制調(diào)用glDrawArrays(int mode, int first, int count)方法
mode的參數(shù)可以選擇

 GL_POINTS ————繪制獨(dú)立的點(diǎn)

 GL_LINE_STRIP————繪制連續(xù)的線段,不封閉

 GL_LINE_LOOP————繪制連續(xù)的線段,封閉

 GL_LINES————頂點(diǎn)兩兩連接,為多條線段構(gòu)成

 GL_TRIANGLES————每隔三個頂點(diǎn)構(gòu)成一個三角形

 GL_TRIANGLE_STRIP————每相鄰三個頂點(diǎn)組成一個三角形

 GL_TRIANGLE_FAN————以一個點(diǎn)為三角形公共頂點(diǎn),組成一系列相鄰的三角形
例子

我設(shè)置一個頂點(diǎn)數(shù)組如下

//頂點(diǎn)數(shù)組
        private float[] mArray = {
                  -0.6f , 0.6f , 0f,
                  -0.2f , 0f , 0f ,
                   0.2f , 0.6f , 0f ,
                   0.6f , 0f , 0f
        };

指定繪制模式為GL_POINTS

gl.glDrawArrays(GL10.GL_POINTS, 0, 4);

效果圖


這里寫圖片描述

指定繪制模式為GL_LINE_STRIP

gl.glDrawArrays(GL10.GL_LINE_STRIP, 0, 4);

效果圖


這里寫圖片描述

指定繪制模式為GL_LINE_LOOP

gl.glDrawArrays(GL10.GL_LINE_LOOP, 0, 4);

效果圖


這里寫圖片描述

指定繪制模式為GL_LINES

gl.glDrawArrays(GL10.GL_LINES, 0, 4);

效果圖


這里寫圖片描述

指定繪制模式為GL_TRIANGLES

gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 4);

效果圖,PS:當(dāng)頂點(diǎn)個數(shù)不足以繪制第二個三角形時,就忽略


這里寫圖片描述

指定繪制模式為GL_TRIANGLE_STRIP

gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);

效果圖,我用虛線隔開了,它本身是兩個相鄰三角形組成


這里寫圖片描述

指定繪制模式為GL_TRIANGLE_FAN

gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, 4);

效果圖,我用虛線隔開了,它本身以第一個頂點(diǎn)為公共點(diǎn),繪制了相鄰的三角形


這里寫圖片描述
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容