【发布时间】:2017-07-28 09:12:57
【问题描述】:
我从 Cinema4D 导入了一个带有父对象树的 collada 文件。当我得到一个对象的世界位置时:
var thing = scene.getObjectByName("thing");
thing.updateMatrixWorld();
var worldPos = new THREE.Vector3();
worldPos.setFromMatrixPosition(thing.matrixWorld);
它与thing.position 相同,文档称其为本地位置。我知道这个对象有一个非零位置的父对象。当我在没有updateMatrixWorld() 的情况下尝试相同的事情时,世界位置为零。如何获得正确的世界位置?
【问题讨论】:
-
您还必须更新所有对象祖先的世界矩阵。根据您的情况,尝试
parent.updateMatrixWorld()或scene.updateMatrixWorld()。 -
是的,就是这样。谢谢!
标签: javascript three.js collada