Android Studio NDK-OpenGL ES 『正交投影』

Android Studio NDK-OpenGL ES 『正交投影』
Android Studio NDK-OpenGL ES 『正交投影』

3D游戲基于『透視投影』產生立體效果, 而2D游戲戲用『正交投影』產生平面效果, 生成等比例游戲.

  1. 指定視區像素尺碼, 『x』 『y』視區左下角,『width』 『height』視區寬高
glViewport(0,0,width, height);
  1. 設定『矩陣堆栈』為『投影矩陣堆栈』
glMatrixMode(GL_PROJECTION);
  1. 載入單位矩陣, 清除『堆栈』残留『矩陣』,以此唔受先前變换運算影响.
glLoadIdentity();
  1. 『正交投影』運算, Y軸視角『fovy』,Z軸視角『aspect』, 『zNear』近裁剪面距离约摸箱機方向Y軸加 『zFar』远裁剪面距离設較大数值.
gluOrtho( fovy, aspect, zNear, zFar );
  1. 設定『矩陣堆栈』為『模型視圖矩陣堆栈』
glMatrixMode(GL_MODELVIEW);
  1. 載入單位矩陣
glLoadIdentity();

 

基於視角『正交投影』

void gluOrtho(double  fovy,double aspect,double zNear,double zFar){

double  xmin, xmax, ymin, ymax;

ymax = zNear * tan(fovy * 3.141592654f / 360.0f);

ymin = -ymax;

xmin = ymin * aspect;

xmax = ymax * aspect;

glOrthof(xmin, xmax, ymin, ymax, zNear, zFar);

}

 

評論