D3DXMatrixLookAtLH

D3DXMATRIX * D3DXMatrixLookAtLH(

  __inout  D3DXMATRIX *pOut,

  __in     const D3DXVECTOR3 *pEye,

  __in     const D3DXVECTOR3 *pAt,

  __in     const D3DXVECTOR3 *pUp

);

 

其官方文档上给出的各个参数解释如下(英文翻译):

pOut [in, out]

D3DXMATRIX

指向操作结果存放的矩阵

 

pEye [in]

D3DXVECTOR3

定义眼睛(摄像机)位置。

 

pAt [in]

D3DXVECTOR3

定义相机看的目标位置

Pointer to the D3DXVECTOR3 structure that defines the camera look-at target.

 

pUp [in]

D3DXVECTOR3

定义当前世界(视野)的上角,通常被设置为[0, 1, 0]



D3DXMatrixLookAtLH


像机在盒子上方,朝盒子45度一个角看去的代码可以这样写:

//相机位置

        D3DXVECTOR3 camera( 0.0f, 10.0f, 0.0f );

        //物体位置

        D3DXVECTOR3 object( 0.0f, 0.0f, 0.0f );

        //相机朝向点

        D3DXVECTOR3 directPoint( 1.0f, 0.0f, 1.0f);

        //获取视角矩阵

    D3DXMatrixLookAtLH( &matView, &camera, &object, &directPoint );

//指定视角矩阵

        g_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );

可以基本认为,看到的东西的视域,是向量pUp-pEye以及向量pAt-pEye所夹的一个区域,上书代码所得到的结果为:

D3DXMatrixLookAtLH