DirectX是左手系, OpenGL是右手系
坐标系的手系可以通过计算基向量组的行列式得到(区别只在于z轴基向量的方向), 行列式为正的是右手系, 否则是左手系
4 3D图形
矩阵与仿射变换
矩阵相乘只要行列对应得上即可...这里都按照行向量表示
3D中3x3矩阵只能表示向量的线性变换(旋转, 缩放, 错切), 但是无法表示非常常用的平移变换(非线性), 因此引入了一维(w)表示平移, 称为仿射变换....对应的4x4矩阵称为仿射变换矩阵, 此时扩展出来的4维向量坐标称为齐次坐标....或看为坐标系变换, 这里原本是(0, 1)的y轴变换为了(1, 1), 因此整个图形发生了倾斜:
平移: 借助了齐次坐标的特性, 行向量左乘下面的矩阵后, 如果w为1也就是3D的点的话, 矩阵最下面一行就会起到平移点的作用...下图是通用的DirectX版本投影矩阵, 实际DirectX使用的时候并没有第三列上面的两个系数
透视投影变换只能保证深度投影后前后顺序不变, 但是并不能保持线性关系, 整体的深度值会向后挤压, 也就是大多数深度投影后分布在较后的比例