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函数所定义的座标范围内。
最后变换出来的座标将会送到光栅器,将其转化为片段。

之所以将顶点变换到各个不同的空间的原因是有些操作在特定的座标系统中才有意义且更方便。
例如,当需要对物体进行修改的时候,在局部空间中来操作会更说得通;
如果要对一个物体做出一个相对于其它物体位置的操作时,在世界座标系中来做这个才更说得通

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