D3DXVec3TransformNormal and D3DXVec3TransformCoord
D3DXVec3TransformCoord 函数
用矩阵变换3-D向量,并且用w = 1投影结果。
定义:
D3DXVECTOR3 *WINAPI D3DXVec3TransformCoord(
D3DXVECTOR3 *pOut,
CONST D3DXVECTOR3 *pV,
CONST D3DXMATRIX *pM
);
Parameters
pOut
[in, out] 指向 D3DXVECTOR3 结构的操作结果。
pV
[in] 指向 D3DXVECTOR3 结构的向量。
pM
[in] 指向 D3DXMATRIX 结构的变换矩阵。
Return Value
指向 D3DXVECTOR3 结构的变换后的向量。
说明:
这个函数用矩阵pM变换3-D向量pV (x, y, z, 1),并且用w = 1投影结果。
函数返回值跟pOut 参数返回值是一样的。这样可以让函数D3DXVec3TransformCoord作为其它函数的参数使用。
函数信息:
Header |
d3dx9math.h |
Import library |
d3dx9.lib |
Minimum operating systems |
Windows 98 |
函数相关:
D3DXVec3Transform, D3DXVec3TransformNormal
D3DXVec3TransformNormal 函数
用矩阵变换3-D向量标准形式。
定义:
D3DXVECTOR3 *WINAPI D3DXVec3TransformNormal(
D3DXVECTOR3 *pOut,
CONST D3DXVECTOR3 *pV,
CONST D3DXMATRIX *pM
);
Parameters
pOut
[in, out] 指向 D3DXVECTOR3 结果的操作结果。
pV
[in] 指向 D3DXVECTOR3 结构的向量。
pM
[in] 指向 D3DXMATRIX 结构的矩阵。
返回值:
指向 D3DXVECTOR3 结构的变换后的向量。
说明:
这个函数用矩阵pM变换向量pV标准形式 (x, y, z, 0),不是齐次坐标形式。
如果一个非仿射矩阵变换,那么这个矩阵要作逆运算后再转置才传给本函数。
函数返回值跟pOut 参数返回值是一样的。这样可以让函数D3DXVec3TransformNormal作为其它函数的参数使用。
函数信息:
Header |
d3dx9math.h |
Import library |
d3dx9.lib |
Minimum operating systems |
Windows 98
|
区别:
坐标和向量是有区别的:向量的第四维数值是0,坐标的第四维数值是1
D3DXVec3TransformCoord
VOut.x = V1.x * M.11 + V1.y * M.21 + V1.z * M.31 + M.41
VOut.y = V1.x * M.12 + V1.y * M.22 + V1.z * M.32 + M.42
VOut.z = V1.x * M.13 + V1.y * M.23 + V1.z * M.33 + M.43
D3DXVec3TransformNormal
VOut.x = V1.x * M.11 + V1.y * M.21 + V1.z * M.31
VOut.y = V1.x * M.12 + V1.y * M.22 + V1.z * M.32
VOut.z = V1.x * M.13 + V1.y * M.23 + V1.z * M.33