|
|
如果要移动一个对象,就用坐标矩阵变换,用D3DXMatrixTranslation就行,很容易
如果我想眼睛也跟着移动,我就对视矩阵也用D3DXMatrixTranslation,结果正确
但是:旋转的时候就不行了.比如先Z坐标前进10 ,
执行:
D3DXMatrixTranslation(&matWorldXYZ,0.0f,0.0f,10.0f);//前进对象
D3DXMatrixTranslation(&matview,0.0f,0.0f,10.0f);//眼睛跟着前进
再旋转
D3DXMatrixRotationY(&matWorldXYZ,1.0f); //旋转物体
D3DXMatrixRotationY(&matview,1.0f) //眼睛跟着旋转
对象正确旋转,对象的朝向改变,
眼睛的视矩阵旋转之后错误,眼睛的指向没有变化
这样对象朝旋转后新的方向再前进的时候
眼睛却还是朝原来的一个方向前进
D3DXMatrixTranslation(&matWorldXYZ,0.0f,0.0f,10.0f);//再前进对象
D3DXMatrixTranslation(&matview,0.0f,0.0f,10.0f);//眼睛跟着前进
为什么这样呢?为什么矩阵变换之后眼睛的朝向没有变换呢? |
|