3D游戏从入门到精通-9

时间:2022-03-05 23:03:05
 
1、             投影变换矩阵
投影变换矩阵是做什么的呢?这个更容易理解了。大家都应看过照片吧,那大家又想过照片是怎么样表现原来的物体呢?看到远处的山是小的,近处的人是大的。并且只有在一定的范围内的物体才照得清楚,其它的就不见了。在D3D里就需要把三维的物体空间投影到二维的屏幕空间显示,这就需要投影了。本来人眼看现实的物体时,总是经过投影变换的,把三维的物体通通变换成二维东西,这样就在人眼上看见东西就是三维的了。现在这个投影变换就是模拟人眼的作用,沿着光线的方向,那些能看见,那些不能看见。那些是近的,那些是远的。通过这样的计算,就会生成二维的图像,跟人眼看到真实的世界是相同的。
如下图所示:
在D3D里通过设置投影前截面、后截面、视角和长宽比来构造投影矩阵,使用下面的函数来构造这个投影变换矩阵:
D3DXMatrixPerspectiveFovLH( &m_mProjection, fFOV, fAspect, fNearPlane, fFarPlane );
第一个参数是返回的矩阵,第二参数是视角,第三个参数是长宽比,第四参数是近截面,第五参数是远截面。
构造好投影变换矩阵,就可以通过下面参数设置:
 
// 设置投影矩阵。
const D3DXMATRIX& mProj = CCameraFirstPerson::Instance()->GetProjectionMatrix();
m_pd3dDevice->SetTransform( D3DTS_PROJECTION, &mProj );
 
这样就可以设置好D3D的设备投影矩阵。
 
电子书 MM3D 引擎源程序 例子源程序 49 元一套
联系人:蔡军生  
联系方式:
QQ: 9073204
EMAIL: caimouse1976 at sina.com