|
|
发表于 2008-11-23 14:10:00
|
显示全部楼层
Re:关于D3DXMatrixLookAtLH函数
__forceinline Float4x4 FromParent(const Float3 &pos,const Float3 &look,const Float3 &up)
{
Float3 Zaxis = look / Norm(look);
Float3 Xaxis = Cross(up,Zaxis);
Xaxis /= Norm(Xaxis);
Float3 Yaxis = Cross(Zaxis,Xaxis);
Float4x4 ret =
{
Xaxis.x, Xaxis.y, Xaxis.z, -Dot(pos,Xaxis),
Yaxis.x, Yaxis.y, Yaxis.z, -Dot(pos,Yaxis),
Zaxis.x, Zaxis.y, Zaxis.z, -Dot(pos,Zaxis),
0, 0, 0, 1,
};
return ret;
}
__forceinline Float4x4 Look(const Float3 &eye,const Float3 &look,const Float3 &up)
{
return FromParent(eye,look,up);
}
__forceinline Float4x4 LookAt(const Float3 &eye,const Float3 &look_at,const Float3 &up)
{
return Look(eye, look_at - eye, up);
}
http://bbs.gameres.com/showthread.asp?threadid=112769 |
|