概要
渲染游戏的过程可以理解成是一个个顶点经过层层处理最终转化到屏幕上的过程,那么本节我们就将学习这个转换的过程是如何实现的。具体来说,顶点是经过了哪些坐标空间后,最后被画在了屏幕上。
为什么要使用这么多不同的坐标空间
举个例子, 此时此刻,你的鼠标在你键盘的右侧,那么此时使用的是以你的键盘为原点的坐标空间。你现在想上个厕所,厕所在你房间门口的右前方10米的位置,那么此时使用的是以你的房门为原点的坐标空间。你总不可能说厕所在你键盘的x方向x米的位置。
因此,我们需要在不同的情况下使用不同的坐标空间,因为一些概念只有在特定的坐标空间下才有意义,才更容易理解。这也是为什么在渲染中我们要使用这么多坐标空间。
坐标空间的变换
有点复杂,矩阵转换没有完全理解
参见 入门精要 4.6.2节
顶点的坐标空间变换过程
在渲染流水线中,一个顶点要经过多个坐标空间的变换才能最终被画在屏幕上。一个顶点最开始是在模型空间中定义的,最后它将会变换到屏幕空间中,得到真正的屏幕空间坐标。
模型空间
模型空间也被成为对象空间,或局部空间,每个模型都有自己独立的坐标空间,当它移动或旋转的时候,模型空间也会跟着它移动和旋转。
在模型空间中,我们经常使用一些方向概念,如:前/后/左/右/上/下。我们把这些方向成为自然方向。模型空间中的坐标轴通常会使用这些自然方向。Unity在模型空间中使用的是左手坐标系,因此在模型空间中&#x