plotTrajectory.cpp

將座標從一個座標系轉換到另一個座標系,需要用到模型(Model)、視圖(View)、投影(Projection)三個矩陣。
首先,頂點座標開始於局部空間(Local Space),稱爲局部座標(Local Coordinate),
然後經過世界座標(World Coordinate),
觀察座標(View Coordinate),
裁剪座標(Clip Coordinate),
最後以屏幕座標(Screen Coordinate)結束。

在這裏插入圖片描述
局部座標是對象相對於局部原點的座標,也是物體起始的座標。

下一步是將局部座標變換爲世界空間座標,世界空間座標是處於一個更大的空間範圍的。
這些座標相對於世界的全局原點,它們會和其它物體一起相對於世界的原點進行擺放。

接下來我們將世界座標變換爲觀察空間座標,使得每個座標都是從攝像機或者說觀察者的角度進行觀察的。

座標到達觀察空間之後,我們需要將其投影到裁剪座標。
裁剪座標會被處理至-1.0到1.0的範圍內,並判斷哪些頂點將會出現在屏幕上。

最後,我們將裁剪座標變換爲屏幕座標,我們將使用一個叫做視口變換(Viewport Transform)的過程。
視口變換將位於-1.0到1.0範圍的座標變換到由glViewport函數所定義的座標範圍內。
最後變換出來的座標將會送到光柵器,將其轉化爲片段。

之所以將頂點變換到各個不同的空間的原因是有些操作在特定的座標系統中才有意義且更方便。
例如,當需要對物體進行修改的時候,在局部空間中來操作會更說得通;
如果要對一個物體做出一個相對於其它物體位置的操作時,在世界座標系中來做這個才更說得通

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章