我需要将孙子对象移动到世界空间中给定的目标位置和方向。必须通过操纵祖父母(根)位置和轮换来移动大孩子(孩子2)。
如果我有一个给定的目标世界矩阵, 我必须向祖父母申请什么矩阵才能让孙子与目标相匹配?
after transformation, child 2 moved to target
我的问题不同,因为我并没有找到可用的IK系统"。我只需要计算一个祖父母的矩阵。我获得了你的答案,但似乎没有人评估正确的矩阵。与此同时,我找到了一个有效的解决方案。我会在我的代码中进行一些清理并发布它。
答案 0 :(得分:0)
您希望将矩阵应用于祖父对象,以便孙子对象的世界矩阵与目标对象的世界矩阵匹配。
为此,请使用以下模式:
var matrix = new THREE.Matrix4(); //create once and reuse
. . .
scene.updateMatrixWorld(); // the renderer does this for you in the render loop
matrix.getInverse( gchild.matrixWorld ).premultiply( target.matrixWorld );
parent.applyMatrix( matrix );
既然你知道了答案,那么它应该是显而易见的。
three.js r.87
答案 1 :(得分:-2)
对于对象的本地坐标系中的点,
object.localToWorld( point );
假设对应用于对象的点应用相同的变换,将返回该点的世界坐标。
THREE.js: Calculate world space position of a point on an object