矩阵形式的优点与缺点

矩阵形式的优点:
1.可以立即进行向量的旋转。利用物体和惯性坐标系间旋转向量,这是其他描述方法所做不到的。为了旋转向量,必须将方位转换为向量形式;
2.矩阵的形式被图形API所使用;
3.多个角位移连接。矩阵形式的第二个优点就是可以“打破”嵌套坐标系间的关系。例如:如果知道A关于B的方位,又知道B关于C的方位,使用矩阵可以求得A关于C的方位;
4.矩阵的逆。矩阵形式表达位移时,逆矩阵就是“反”角位移。因为旋转矩阵是正交的,所以这个计算是简单的矩阵转置运算。

矩阵形式的缺点(矩阵用9个数来保存方位,实际上方位只需要3个数就能确定了,这些“多余”的数会导致问题):
1.矩阵占用了更多的内存;
2.难于使用;
3.矩阵可能是病态的。矩阵使用9个数,其实只有3个数是必需的。也就是说矩阵带有6阶冗余。描述方位的矩阵必须满足6个限制条件,行必须是单位向量,而且它们必须互相垂直。

病态矩阵是怎样出现的呢?
1.矩阵可能包含缩放、切变或镜像的操作,这些操作会对物体的“方位”产生什么影响呢?任何非正交的矩阵都不是一个定义良好的旋转矩阵。虽然镜像矩阵也是正交的,但它不是有效的旋转矩阵;
2.可能从外部数据源获得“坏”数据。例如:使用物理数据获取设备(如动作捕捉器)时,捕获过程中可能产生错误,许多建模包就是因为会产生病态矩阵而变得声名狼藉;
3.肯能因为浮点数的舍入错误产生“坏”数据。例如,对一个方位作大量的加运算,这在允许人们手动控制物体方位的游戏中很常见。由于浮点数精度的限制,大量的矩阵乘法最终可能导致病态矩阵。郑重现象称作“矩阵蠕变”。矩阵正交化能解决矩阵蠕变的问题。

--截取自《3D数据基础:图形与游戏开发》第133页。
posted @ 2009-09-22 22:18  耀阳  阅读(3329)  评论(0编辑  收藏  举报