gpt4 book ai didi

math - 从 3D 中的变换矩阵计算 'up vector'

转载 作者:行者123 更新时间:2023-12-03 15:18:34 30 4
gpt4 key购买 nike

我刚刚在 3D 项目中遇到了奇怪的问题。每个人都知道计算 LookAt 向量的算法,但是从变换矩阵计算“向上”向量并不容易(或者至少我可能只是错过了一些东西)。

问题如下:

“向上”向量是 (0, 1, 0) 用于单位旋转矩阵并随矩阵旋转,但不缩放也不平移。如果你有简单的旋转矩阵程序很容易(乘以向量和矩阵)。但是如果矩阵还包含平移和旋转(例如它是通过乘以其他几个矩阵产生的),这将不起作用,因为向量将被平移和缩放。

我的问题是如何从单个变换矩阵中得到这个“向上”向量,假设向量 (0, 1, 0) 对应于单位旋转矩阵。

最佳答案

翻译实际上确实会影响它。假设在示例中,变换矩阵没有进行任何缩放或旋转,但确实在 Z 方向上将其平移了 2 个单位。然后当你变换 (0,1,0) 时你得到 (0,1,2),然后将它归一化得到 (0,1/sqrt(5), 2/sqrt(5))。

你想要做的是取(0,1,0)的变换和(0,0,0)的变换之间的差,然后对得到的向量进行归一化。在上面的示例中,您将根据需要将 (0,1,2) 减去 (0,0,2)(0,0,2 是零向量的变换)得到 (0,1,0)。

关于math - 从 3D 中的变换矩阵计算 'up vector',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1121675/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com