轉:OpenGL ES 2.0 - 繪製方式

原文地址: http://blog.csdn.net/sz66cm/article/details/54288626less

繪製方式

各類繪製方式

GL_POINTS

這裏寫圖片描述

GL_LNES

這裏寫圖片描述

GL_LINE_STRIP

這裏寫圖片描述

GL_LINE_LOOP

這裏寫圖片描述

GL_TRIANGLES

這裏寫圖片描述

GL_TRIANGLE_STRIP

這裏寫圖片描述

GL_TRIANGLE_FAN

這裏寫圖片描述

GL_TRIANGLES_STRIP 三角形條帶模式

通常狀況下繪製物體須要的頂點數量比直接的三角形方式(GL_TRIANGLES)少.oop

GL_TRIANGLES_STRIP 妙用之繪製非連續三角形構成的物體

以下圖,只要將上一批三角形的最後一個頂點和下一批三角形的第一個頂點重複一次便可. 
這裏寫圖片描述spa

頂點法與索引法

glDrawArrays方法進行物體的繪製,按照傳入渲染管線頂點自己的順序及選用的繪製方式將 
頂點組織成圖元進行繪製的,也稱之爲頂點法..net

頂點法弊端

有些狀況下不得不在頂點序列中出現不少重複的頂點,若但願減小重複頂點佔用的空間,可考慮 
採用glDrawElements方法來進行物體的繪製.code

glDrawElements方法

此方法繪製時,不但要將頂點序列傳入渲染管線,還須要將索引序列傳入管線. 
繪製時管線根據索引值序列中的索引一一從頂點序列中去取出對應的頂點,再根據當前選用的繪製 
方式組織成圖元進行繪製.xml

重要代碼

GLES20.glDrawElements(//用索引法繪製圖形 GLES20.GL_TRIANGLE_FAN,//繪製方式 iCount,//索引數目 GLES20.GL_UNSIGNED_BYTE, mIndexBuffer//索引數據緩衝,ByteBuffer類型 );
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

設置合理的視角

在OpenGL ES的虛擬世界中,攝像機也有視角大小,以下圖 
這裏寫圖片描述 
OpenGL ES 虛擬世界攝像機的左右視角大小主要是由left,right,及near值決定的 
上下視角由top,bottom,及near值決定的.blog

計算視角

  • 水平方向視角 
     
    a=2arctg(leftnear)
  • 垂直方向視角 
     
    a=2arctg(topnear)

卷繞和背面剪裁

背面剪裁

指渲染管線在對構成立體物體的三角形圖元進行繪製時,僅當攝像機觀察點位於三角形正面的狀況下才 
繪製三角形.打開背面剪裁,在大部分狀況下能夠提升渲染效率,去除大量沒必要要的渲染工做.索引

卷繞

瞭解背面剪裁後,很重要的一點就是肯定攝像機位於一個面的正面仍是反面.在默認的狀況下,OpenGL ES 
中規定當攝像機觀察一個三角形面時,若三角形中3個頂點的卷繞順序是逆時針則攝像機觀察其正面,反之 
攝像機觀察其反面. 
這裏寫圖片描述圖片

重要代碼

GLES20.glEnable(GLES20.GL_CULL_FACE);//打開背面剪裁 GLES20.glDisable(GLES20.GL_CULL_FACE);//關閉背面剪裁 GLES20.glFrontFace(GLES20.GL_CCW);//設置逆時針卷繞爲正面,默認設置如此,因此通常不須要明確設置 GLES20.glFrontFace(GLES20.GL_CW);//設置順時針卷染爲正面.
相關文章
相關標籤/搜索