DirectX Math函数混乱



当我在浏览一些旧的DirectX代码时,我看到了D3DXVec3Transform和D3DXVec3TransformCoord函数。在查找它们的描述时,它们看起来相当相似,但我看不出两者之间有什么区别。有人能解释一下D3DXVec3Transform和D3DXVec3TransformCoord之间的区别是什么,以及它们背后的数学原理吗?

当你用矩阵变换一个3D向量时,它会得到一个4D向量,其中w!

= 1三维矢量

可以描述为4D矢量,其中w=1。

D3DXVec3Transform返回w!=1的4D向量。D3DXVec3TransformCoord获得4D矢量,并将其投影到w=1上,使其成为3D矢量。

编辑:这是我在谷歌上发现的论文,如果对如何进行转换感兴趣:http://www.heldermann-verlag.de/jgg/jgg01_05/jgg0404.pdf

最新更新