Unity3D MultiplyPoint 矩阵混乱

问题描述 投票:0回答:1

这个乘点函数 只需将 4*4 矩阵乘以向量 3 或 4。

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

数学本身并没有什么了不起的,只是每列与每行的点积即可得到最终的变换。

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

transform matrix values

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

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

Edit: Code extract

c# matrix unity-game-engine transform
1个回答
2
投票

此乘点函数只需将 4*4 矩阵乘以 Vector3 或 Vector4。

这实际上是错误的,它只乘以 Vector3 - 检查文档。

问题:为了提供帮助,Unity 在 Vector2、Vector3、Vector4 之间烦人地“转换”(以不同的方式,有时有意义,有时没有意义)。

如果你给它一个 Vector4 作为参数,你实际上并没有得到你所想的 - 它只是将它“转换”到 Vector3 试图提供帮助。

我希望这就是问题所在!

为了让新读者在这里谷歌搜索,在

a=b.MultiplyPoint(c)
中,我们有b(是b,不是a或c)是四(即“运动”),c是三(位置),结果是a是三(位置)。

© www.soinside.com 2019 - 2024. All rights reserved.