//=========================================
   /**
   次计算方法
   right向量的y分量始终是0
   */
//=========================================

在Camera类加了一个,以自身位置和目标位置计算look,up,right向量的函数
void zybCamera::setPositionAndTarget(D3DXVECTOR3* pos,D3DXVECTOR3* target)
{
   _pos = *pos;
   D3DXVECTOR3 look = *target - *pos;
   D3DXVec3Normalize(&look,&look);
   _look = look;

   _right.y = 0;
   //正向旋转90°,想想自己前方是前向量,又向量自然为前向量旋转90
   _right.x = look.z;
   _right.z = -look.x;
   D3DXVec3Normalize(&_right,&_right);

   D3DXVec3Cross(&_up, &_look, &_right);
   D3DXVec3Normalize(&_up, &_up);


}

Posted on 2009-09-14 20:59 zyb_debug 阅读(89) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理