投影变换矩阵决定了几何形体如何从3-D视图空间变换到2-D视口空间。
下面的代码段创建了一个投影矩阵,并加以设置。
D3DXMATRIX matProj;
D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.0f, 1.0f, 100.0f );
g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );
首先调用D3DXMatrixPerspectiveFovLH来设置投影矩阵。第一个参数是一个指向D3DXMATRIX结构的指针,它同样也是此函数执行的结果。第二个参数定义了视口的范围,规定了在多远处的物体应该变小。一个典型的视口范围是1/4π,本例中也使用这个值。第三个参数定义了空间高与宽的比,本例中设置为1。第四,第五个参数定义了近裁剪面和远裁剪面。它们决定了在某个距离范围内的几何形体,哪些该被渲染,哪些不该被渲染。Matrices示例工程中,近裁剪面设置为1,远裁剪面设置为100(z轴坐标)
下一步则是调用IDirect3DDevice9::SetTransform来应用变换。第一个参数告知Direct3D需要设置哪一种变换矩阵。本例中使用D3DTS_PROJECTION标识来指定设置投影矩阵。第二个参数是一个指向当前设置矩阵的指针。
本次指南向你展示了怎样使用矩阵。指南4:创建并使用灯光 展示了如何在你的场景中添加灯光,从而使它更加真实。