http://blog.csdn.net/loveclover

第二步:定义视口变换矩阵

视口变换矩阵决定了视口的位置和旋转。视口矩阵就是场景的摄像机。

下面的代码段创建了视口变换矩阵,并加以设置。

D3DXMATRIX matView;
D3DXMatrixLookAtLH( 
&matView, &D3DXVECTOR3( 0.0f3.0f,-5.0f ),
                              
&D3DXVECTOR3( 0.0f0.0f0.0f ),
                              
&D3DXVECTOR3( 0.0f1.0f0.0f ) );
g_pd3dDevice
->SetTransform( D3DTS_VIEW, &matView );

第一步通过调用D3DXMatrixLookAtLH来定义视口矩阵。第一个参数是一个指向D3DXMATRIX结构的指针,它也是该操作的返回值。第二,第三和第四个参数定义了观察点,目标点和当前世界的“上”方向。此处,观察点被设为沿z轴负方向5个单位并且沿上方向3个单位,目标点设置为原点,“上”方向定义为y轴方向。

接下来通过调用IDirect3DDevice9::SetTransform来设置视口变换矩阵。第一个参数告知Direct3D需要设置哪一种变换。本例中使用D3DTS_VIEW标识指定设置视口变换矩阵。第二个参数即为当前需要设置的变换矩阵指针。

After defining the world transformation for the scene, you can prepare the projection transformation matrix. Again, note that the order in which transformations are defined is not critical. However, Direct3D applies the matrices to the scene in the following order: (1) World ,(2) View, (3) Projection.

在定义完场景的视口变换之后,你就可以准备投影变换矩阵了。再次需要提醒的是,定义变换矩阵的顺序并不是关键的。但是,Direct3D会按照世界、视口、投影的顺序设置场景的矩阵。

posted on 2008-03-18 15:03 Sure 阅读(1535) 评论(1)  编辑 收藏 引用

评论

# re: 第二步:定义视口变换矩阵 2009-04-10 15:03 宋宋

你说的那是取景变换矩阵,即观察矩阵。
一般来说,视口矩阵是继世界,观察,投影后设置的。
SetViewport是用来设置视口矩阵的函数。
  回复  更多评论   

只有注册用户登录后才能发表评论。
<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

导航

统计

常用链接

留言簿(5)

随笔分类

随笔档案

相册

搜索

最新评论

阅读排行榜

评论排行榜