一. 将模型从模型空间变换到世界空间下
在这个作业下,我们主要进行旋转的变换。
二.视图变换 ,将相机移动到坐标原点,同时保证物体和相机进行同样的变换(这样对形成的图像没有影响)
在这个作业下我们主要进行摄像机的平移变换,没有进行旋转操作
三.投影变换,分为两种变换,一是正交投影,二是透视投影。在这里,我们先进行了透视投影,然后通过Mpersp2ortho矩阵将透视投影的棱台压缩成了一个Cube,然后再进行正交投影,将这个需要投影的Cube进行平移到原点,缩放到相应的尺寸,同时缩放成为一个立方体。
其中社设计到了关于l,b,t...等变量的求法如下图所示。利用函数中的参数,视野FOV和宽高比进行计算
然后在Main函数里调用这几个矩阵
关于提高部分的关键代码如下
但要注意下矩阵的大小。
上图就算罗德里戈斯旋转公式,其大小为3X3的矩阵,因此我们就要添加一个维度,0,0,0,1。
和0,0,0,0。
因此我们只需要将M_r(3,3) = 1就行了。
然后用分块矩阵操作,将Temp函数赋值给旋转矩阵。
运行结果如下
后续还将继续补充...