前言
之前一篇文章講了如何繪製點,所謂兩點成線,三點成面。一個立體圖形就是由很多面組成,在OpenGL ES中,面特指一個三角形。
繪製調用glDrawArrays(int mode, int first, int count)方法
mode的參數可以選擇
- GL_POINTS ————繪製獨立的點
- GL_LINE_STRIP————繪製連續的線段,不封閉
- GL_LINE_LOOP————繪製連續的線段,封閉
- GL_LINES————頂點兩兩連接,爲多條線段構成
- GL_TRIANGLES————每隔三個頂點構成一個三角形
- GL_TRIANGLE_STRIP————每相鄰三個頂點組成一個三角形
- GL_TRIANGLE_FAN————以一個點爲三角形公共頂點,組成一系列相鄰的三角形
例子
我設置一個頂點數組如下
//頂點數組
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:當頂點個數不足以繪製第二個三角形時,就忽略
指定繪製模式爲GL_TRIANGLE_STRIP
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);
效果圖,我用虛線隔開了,它本身是兩個相鄰三角形組成
指定繪製模式爲GL_TRIANGLE_FAN
gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, 4);
效果圖,我用虛線隔開了,它本身以第一個頂點爲公共點,繪製了相鄰的三角形
Demo 地址: 打開
密碼:rl8w
下一篇文章將講解圖形的變換。