转载地址:http://www.cnblogs.com/siphen/articles/1881974.html
最近在几种图形api与渲染引擎环境中来回切换,比较下矩阵运算
opengl 右手坐标系 列向量 左乘 列主序存储矩阵
osg 右手坐标系 行向量 右乘 行主序存储矩阵
d3d 左手坐标系 行向量 右乘 行主序存储矩阵
ogre 右手坐标系 列向量 左乘 行主序存储矩阵
osg 底层使用的是opengl ,行向量,由于使用矩阵是行主序存储,
相同变换矩阵与opengl矩阵内存内容一直,可直接使用api设置变换矩阵;
ogre 支持opengl,d3d,opengl与ogre上层矩阵库运算顺利相同,
但opengl api设置矩阵前需要修改矩阵的存储顺序为列主序,
d3d使用右乘,ogre上层运算的矩阵应用到d3d api前需要转置处理,
d3d使用与ogre不同的坐标系,设置ogre的ViewMatrix到d3d api前取反look方向(view坐标系z轴)