OpenGL 要求輸入的頂點座標都是標準化設備座標,即每個頂點的 x、y、z 都在 -1 到 1 之間,由標準化設備座標轉換爲屏幕座標的過程中會經歷變換多個座標系統,在這些特定的座標系中,一些操作和計算可以更加方便。
- 局部座標
頂點座標起始於局部空間(Local Space),在這裏稱爲局部座標,是以物體某一點爲原點而建立的,該座標系僅對該物體適用,用來簡化對物體各部分座標的描述。物體放到場景中時,各部分經歷的座標變換相同,相對位置不變。 - 世界座標
局部座標通過模型矩陣進行位移、縮放、旋轉,將物體從局部變換到世界空間,並和其他物體一起相對於世界的原點擺放。 - 觀察座標
將世界空間座標轉化爲用戶視野前方的座標,通常是由一系列的位移和旋轉的組合(觀察矩陣)來完成。 - 裁剪座標
座標到達觀察空間之後,通過投影矩陣會將指定範圍內的座標變換爲標準化設備座標的範圍(-1.0, 1.0),所有在範圍外的座標會被裁剪掉。 - 屏幕座標
將裁剪座標位於(-1.0, 1.0)範圍的座標變換到由 glViewport 函數所定義的座標範圍內,最後變換出來的座標將會送到光柵器,將其轉化爲片段。