Android OpenGL ES學習筆記之繪製線、面

前言

之前一篇文章講了如何繪製點,所謂兩點成線,三點成面。一個立體圖形就是由很多面組成,在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

下一篇文章將講解圖形的變換。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章