我进行了一系列转换,将我的对象放到其他地方。我正在为 GL/ES 中的可编程管道手动乘以这些转换。我正在围绕遥远的任意点旋转并进行平移,虽然我可以毫不费力地让我的对象最终定位到我想要的位置,但我想知道如何在这些转换之后提取其位置的最终 3D 矢量坐标. ?
这个问题建议的一个选项是简单地将您的起始位置乘以最终矩阵并将该结果向量保持为最终坐标。如果是这样,在这些转换之前我用来表示对象原点的向量是什么?因为将矩阵乘以我的原点 (0,0,0) 只会产生一个零向量。
我进行了一系列转换,将我的对象放到其他地方。我正在为 GL/ES 中的可编程管道手动乘以这些转换。我正在围绕遥远的任意点旋转并进行平移,虽然我可以毫不费力地让我的对象最终定位到我想要的位置,但我想知道如何在这些转换之后提取其位置的最终 3D 矢量坐标. ?
这个问题建议的一个选项是简单地将您的起始位置乘以最终矩阵并将该结果向量保持为最终坐标。如果是这样,在这些转换之前我用来表示对象原点的向量是什么?因为将矩阵乘以我的原点 (0,0,0) 只会产生一个零向量。
解决方案非常简单。
如果我有一个矩阵M
,它是由所有矩阵乘法创建的最终转换,那么我可以通过以下方式找到转换的对象的中心M
:
M * vector(0,0,0,1) // creates a 4D vector, where the first three, x,y,z are the coordinates
这很容易在代码中手动完成。
该问题缺少的关键部分是用于此乘法的确切向量。