SDK 文档详解:
| | |
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 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, theD3DXMatrixLookAtLH 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
Requirements
Header: Declared in D3DX10Math.h.
Library: Use D3DX10.lib.
See Also
自己在某些地方的理解:
pEye 是摄像机在世界坐标系中的位置,
pAt 是摄像机观察的目标点,也就是摄像机正对的那个点,就像人眼睛看向一个物体,那么这个物体就是视角中心,其他物体都在这个物体周边。
所以显示的时候,这个点会在屏幕中心。所以把这个点往X正方向设置,原来在中心的物体就会往左移,同理于YZ轴。
本文详细解析了D3DXMatrixLookAtLH函数,用于构建左手坐标系下的视图矩阵。重点介绍了参数解释、返回值、公式计算过程以及使用方法。此外,还解释了pEye、pAt和pUp参数在场景中的作用,以及如何在实际应用中正确设置这些参数以实现预期的视图效果。

被折叠的 条评论
为什么被折叠?



