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]。
像机在盒子上方,朝盒子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所夹的一个区域,上书代码所得到的结果为: