CAL3d右手坐标系转左手坐标系(2009-04-27 00:10)
同事看了cal3d导出件,配上一键导出的脚本,确实不错,cal3d除了渲染模块有待改进外,其他部分都写得相当到位。但人物角色老拿“左手剑”不是那么回事儿,特贴出他给出的最简易而有效的解决办法。
#include 'StdAfx.h'
#include 'max2ogl.h'
Matrix3 ConvertMax2Ogl(const Matrix3& _mat)
{
//return _mat;
//T = R x _mat x R-1
Matrix3 tm,tmogl,tmoglInv;
tmogl.IdentityMatrix();
//tmogl.RotateX(PI*0.5f);
//原来opengl的
// tmogl.SetRow(0,Point3(1,0,0));
//这个省略
tmogl.SetRow(1,Point3(0,0,1));
tmogl.SetRow(2,Point3(0,1,0));
tmoglInv=tmogl;
tmoglInv.Invert();
tm=tmogl*_mat*tmoglInv;
return tm;
}
Point3 ConvertMax2Ogl(const Point3& _p)
{
//return _p;
// return Point3(_p[0],_p[2],-_p[1]); &
-----------------
你我的爱总拨弄着正余弦
我跟他的角度只差一点点
是作等边三角形的一条边
还是作你和我的那条线段
无法决择也无法避免
你和我生活在不同的区间
为何要到天亮了才更明显
齐次坐标的作用可以预见
法向量也无法垂直每一面
爱情的方程已到终点
谁是圆心谁是圆弧线
为何不能构成整个圆
你那单位向量爱的乘
等于同我逆矩阵相减
谁是圆心谁是圆弥线
为何不能构成整个圆
从最开始发出爱的射线
就决定了我越走越远
越走越远
此情可待成追忆 回首已是百年身
如果许文强能过了那一夜。。。。。。