简单来说,DirectX中矩阵得使用分为3个步骤:
1. 定义世界变换矩阵。
2.定义视口变换举证。
3.定义投影变换矩阵。
其中第一步中:
D3DXMATRIX matWorld;
D3DXMatrixRotationY( &matWorld, timeGetTime()/150.0f );//将变换矩阵的信息存在matWorld中,并没有实际变化
g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );//设置了变化矩阵。
第二步:
D3DXVECTOR3 vEyePt ( 0.0f, 3.0f,-5.0f );
D3DXVECTOR3 vLookatPt( 0.0f, 0.0f, 0.0f );
D3DXVECTOR3 vUpVec ( 0.0f, 1.0f, 0.0f );
D3DXMATRIXA16 matView;
D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );//生成视口变换矩阵
g_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );//相当于OpenGL中指定了好几个函数。
第三步:
D3DXMATRIX matProj;
D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.0f, 1.0f, 100.0f );//后两个参数分别是近点,远点
g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );