Android OpenGL ES 2.0 手把手教學(2)- 兩個三角形

你們好,下面和大學一塊兒學習如何在Android上用OpenGL ES 2.0渲染2個三角形,在個人github上有一個項目OpenGLES2.0SamplesForAndroid,我會不斷地編寫學習樣例,文章和代碼同步更新,歡迎關注,連接:github.com/kenneycode/…git

在個人上一篇文章Android OpenGL ES 2.0 手把手教學(1)- Hello World!中,咱們渲染了一個三角形,如今咱們來看看怎麼渲染2個三角形。github

既然咱們已經知道如何渲染一個三角形,那麼是否是渲染完一個三角形以後,改一下頂點座標,再渲染一次就好了?數組

的確能夠這樣,但這篇文章想告訴你們的是,咱們能夠一次向OpenGL傳遞不少頂點,先來看看上一個例子中傳遞的頂點數據:post

val vertexData = floatArrayOf(0f, 0.5f, -0.5f, -0.5f, 0.5f, -0.5f)
複製代碼

這裏解析一下頂點的數值含義,咱們是將點直接賦給了vertex shader中的gl_Position,這時至關於這些頂點的座標是在設備標準化座標系下的座標,在設備標準化座標系中,座標原點在屏幕左下角,x軸從原點指向右,y軸從原點指向上,x、y的取值範圍都是-1~1,因此如今知道爲何上面的頂點座標渲染出來是那樣的一個三角形了嗎?學習

如今能夠修改一下頂點座標數組,在屏幕左上角和右下角分別渲染一個三角形:spa

val vertexData = floatArrayOf(-0.5f, 1f, -1f, 0f, 0f, 0f, 0.5f, 0f, 0f, -1f, 1f, -1f)
複製代碼

你們能夠畫個圖看一看,就知道爲何這些頂點是在屏幕左上角和右下角分別有一個三角形了。code

上篇文章還提到,咱們使用GL_TRIANGLES的方式進行渲染,這個很重要,它是以每三個點爲一個獨立三角形的方式來渲染,因此最終的效果是2個三角形,效果以下:cdn

代碼在我github的OpenGLES2.0SamplesForAndroid項目中,本文對應的是Sample2Triangles,項目連接:github.com/kenneycode/…blog

感謝閱讀!get

相關文章
相關標籤/搜索