我想保存代表两个THREE.Object3d之间相对差异的信息。我更喜欢将数据保存为转换矩阵。
有人知道我需要做些什么才能得到这个?
我想有一个矩阵4,稍后我可以应用于一个对象,它将以相同的值移动/旋转。
由于
答案 0 :(得分:4)
所以你有两个转换A和B,你正在寻找将A转换为B的转换T,对吗?正式这写为
B = T·A
现在你可以想到从A到B,从A回到身份(I),然后从身份回到B,即
。从A回到我:
I = inv(A)·A
从我到B
B = B·I
将你链接起来
B = B·inv(A)·A
添加一些括号以突出显示内容:
B =(B·inv(A))·A
将其与第一个等式进行比较,我们看到
T = B·inv(A)
答案 1 :(得分:1)
对于每个对象,您可以执行
matrix.decompose( position, quaternion, scale )
获取位置,四元数和比例,然后返回四元数,你可以做
matrix.makeRotationFromQuaternion( quaternion )
然后存储您需要的适当差异。