當定義一個物體後,先作MVP矩陣變換,把最後計算出來的矩陣resultMatrix傳遞給頂點着色器,頂點着色器把resultMatrix和當前頂點的座標相乘,獲得頂點着色器要輸出的gl_Position。函數
頂點着色器輸出的gl_Position中含有一個w值,opengl會根據這個w作空間裁剪,x,y,z都須要在-w到w之間,大於或者小於都將被裁剪掉。it
而後opengl會作透視除法,所謂的透視除法,也就是x,y,z這三個值都除以w,而後x,y,z都在[-1,1]的範圍內,這也就是歸一化座標。 透視除法是在2D屏幕上顯示遠小近大的3D效果的關鍵所在。io
最後就是將歸一化座標轉換爲屏幕的座標了,這個須要用到視口變換,opengl
GLES20.glViewport(0, 0, width, height); //用於指定屏幕左上角的位置,和屏幕的長寬
GLES20.glDepthRangef(zNear, zFar);//深度的範圍,這個函數也能夠不設置,由於有默認值,在[0,1]之間。