3D游戲基于『透視投影』產生立體效果, 而2D游戲戲用『正交投影』產生平面效果, 生成等比例游戲.
- 指定視區像素尺碼, 『x』 『y』視區左下角,『width』 『height』視區寬高
glViewport(0,0,width, height); |
- 設定『矩陣堆栈』為『投影矩陣堆栈』
glMatrixMode(GL_PROJECTION); |
- 載入單位矩陣, 清除『堆栈』残留『矩陣』,以此唔受先前變换運算影响.
glLoadIdentity(); |
- 『正交投影』運算, Y軸視角『fovy』,Z軸視角『aspect』, 『zNear』近裁剪面距离约摸箱機方向Y軸加 『zFar』远裁剪面距离設較大数值.
gluOrtho( fovy, aspect, zNear, zFar ); |
- 設定『矩陣堆栈』為『模型視圖矩陣堆栈』
glMatrixMode(GL_MODELVIEW); |
- 載入單位矩陣
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); } |