How does DirectX build the view matrix - From MSDN
D3DXMatrixLookAtLH
Builds a left-handed, look-at matrix.
D3DXMATRIX * D3DXMatrixLookAtLH( D3DXMATRIX * pOut, CONST D3DXVECTOR3 * pEye, CONST D3DXVECTOR3 * pAt, CONST D3DXVECTOR3 * pUp );
Parameters
- pOut
- [in, out] Pointer to the D3DXMATRIX structure that is the result of the operation.
- pEye
- [in] Pointer to the D3DXVECTOR3 structure that defines the eye point. This value is used in translation.
- pAt
- [in] Pointer to the D3DXVECTOR3 structure that defines the camera look-at target.
- pUp
- [in] Pointer to the D3DXVECTOR3 structure that defines the current world's up, usually [0, 1, 0].
Return Values
Pointer to a D3DXMATRIX structure that is a left-handed, look-at matrix.
Remarks
The return value for this function is the same value returned in the pOut parameter. In this way, the D3DXMatrixLookAtLH function can be used as a parameter for another function.
This function uses the following formula to compute the returned matrix.
zaxis = normal(At - Eye) xaxis = normal(cross(Up, zaxis)) yaxis = cross(zaxis, xaxis) xaxis.x yaxis.x zaxis.x 0 xaxis.y yaxis.y zaxis.y 0 xaxis.z yaxis.z zaxis.z 0 -dot(xaxis, eye) -dot(yaxis, eye) -dot(zaxis, eye) l
// insert material here: Introduction to 3D game programing with DirectX 9.0C
// Chapter 12-2 Implementation details
the eye point is uaually the equivalent to camera position