Unity3D MultiplyPoint 矩阵混淆

Unity3D MultiplyPoint matrix confusion

这个multiply point function 简单地将 4*4 矩阵乘以向量 3 或 4。

我正在尝试仅使用数学来复制此函数,因为我正在使用着色器。

数学本身没什么了不起的,只是每行每列的点积得到结果转换。

我的问题是 unity 将我的变换矩阵返回为 2*4,

我要变换的向量是 Vector4(向量 3 世界位置,在第四个分量中添加了 1)

我的结论是这个 Unity 函数必须在标准矩阵乘法之前执行一些其他方法,欢迎对此有任何想法。

This multiply point function simply multiplies up to a 4*4 matrix by a Vector3 or Vector4.

这实际上是错误的,它只乘以一个 Vector3 - 检查 doco

问题:为了提供帮助,Unity 令人讨厌地 "casts" 在 Vector2、Vector3、Vector4 之间(以不同的方式,有时有意义,有时没有意义)。

如果你给它一个 Vector4 作为参数,你实际上并没有得到你想的 - 它的"casting"它试图给一个 Vector3有帮助。

我希望,这就是问题所在!

为了任何新朋友在这里谷歌搜索,在 a=b.MultiplyPoint(c) 中我们有 b(即 b,不是 a 或 c)是 4(即 a "movement"),c 是 a三(位置),结果 a 是三(位置)。