座標系
- 2D笛卡爾座標系(由x、y決定)
- 3D笛卡爾座標系(由x、y、z決定)
視口
- glViewport(GLint x,GLint y,GLsizei width,GLsizei height),對應屏幕區域的範圍;
- 對應全屏幕
- 對應屏幕一部分
投影
- 透視投影(左)和正投影(右)
OpenGL的攝像機座標系(觀察者)
視覺座標系
- 視覺座標系是觀察者的眼睛出發,朝手機設備看過去所能看到的,會有一個z軸的最近距離和最遠距離,也就是zNear和zFar,只有在這兩者之間並且也滿足x軸和Y軸座標在屏幕當中的座標纔會顯示出來,越遠的東西會顯示得越小,產生透視的效果;
世界座標系, 慣性座標系,物體座標系
- 世界座標系:就是由用戶構造的固定座標系,方便描述這個座標系下各種物體相對於原點的位置;
- 慣性座標系:是指世界座標系和物體座標系轉換的中間產物。慣性座標系的原點和物體座標系的原點重合,但慣性座標系的軸和世界座標系的軸平行;
- 物體座標系:物體自己獨有的座標系;
- 由物體座標系轉換到慣性座標系只需要旋轉,從慣性座標系轉換到世界座標系只需要平移。
座標變換
- OpenGL最終渲染到屏幕上是2D的,所以只需要將3D座標進行一系列的變換爲2D座標,整個過程如下圖所示:
- OpenGL中只定義了裁剪座標系、規範化設備座標系和屏幕座標系。而局部座標系(模型座標系)、世界座標系和攝像機座標系都是爲了方便用戶設計而自定義的座標系,他們的關係如下圖所示:
- 模型變換、視變換、投影變換由用戶在頂點着色器中完成。
- 透視除法、視口變換由OpenGL在頂點着色器處理之後完成。