世界变换矩阵决定了怎样在3-D模型空间中平移,缩放和旋转几何物体。
下面的代码段在y轴方向上旋转,然后设置旋转后的变换矩阵(世界坐标)。
D3DXMATRIX matWorld;
D3DXMatrixRotationY( &matWorld, timeGetTime()/150.0f );
g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );
第一步是通过调用D3DXmatrixRotationY方法来沿着Y轴方向旋转三角形。第一个参数是一个指向D3DXMATRIX结构的指针,它也被当作该方法的返回值。第二个参数是旋转的角度(以弧度为单位)
之后则是调用IDirect3DDevice9::SetTransform设置世界变换矩阵。第一个参数通知Direct3D需要设置哪一种变换矩阵。本示例中使用D3DTS_WORLD宏来指定设置世界变换矩阵。第二个参数作为当前要设置的变换矩阵的指针传进去。
在定义完场景的世界变换之后,你就可以准备视口变换矩阵了。需要提醒的是,定义变换矩阵的顺序并不是关键的。但是,Direct3D会按照世界、视口、投影的顺序设置场景的矩阵。