这个乘点函数 只需将 4*4 矩阵乘以向量 3 或 4。
我正在尝试仅使用数学来复制此函数,因为我正在使用着色器。
数学本身并没有什么了不起的,只是每列与每行的点积即可得到最终的变换。
我的问题是 Unity 将我的变换矩阵返回为 2*4,
我要变换的向量是 Vector4(向量 3 世界位置,在第四个分量中添加了 1)
我的结论是,这个 Unity 函数必须在标准矩阵乘法之前执行一些其他方法,欢迎对此有任何想法。
此乘点函数只需将 4*4 矩阵乘以 Vector3 或 Vector4。
这实际上是错误的,它只乘以 Vector3 - 检查文档。
问题:为了提供帮助,Unity 在 Vector2、Vector3、Vector4 之间烦人地“转换”(以不同的方式,有时有意义,有时没有意义)。
如果你给它一个 Vector4 作为参数,你实际上并没有得到你所想的 - 它只是将它“转换”到 Vector3 试图提供帮助。
我希望这就是问题所在!
为了让新读者在这里谷歌搜索,在
a=b.MultiplyPoint(c)
中,我们有b(是b,不是a或c)是四(即“运动”),c是三(位置),结果是a是三(位置)。