我在Object3D转换层次结构中使用Ray.intersectObjects时遇到问题。从本质上讲,intersectObjects似乎忽略了层次结构顶层的旋转。我试图通过修改webgl_interactive_cubes.html演示来重现这个问题,但没有运气。不幸的是我不能发布我正在做的事情。我将尝试重现问题,以便我可以分享它,但也许有人对错误提出了建议。这是使用THREE.js r52。
以下是我认为的相关内容:
- 我有一个根THREE.Object3D元素,它保存顶级旋转。这是似乎被忽略的轮换。
- 这个根元素有两个子节点,都是THREE.Object3D对象。它们每个都有(固定的)旋转和位置变换。
- 我正在寻找这两个元素的孩子之间的交叉点。这些孩子都是来自另一个层次的THREE.Mesh对象的克隆,使用THREE.Mesh.clone()创建。
- 当顶层旋转归零时,交叉点都可以正常工作。
- 一旦应用顶级旋转,交叉点就像没有旋转一样......对象在屏幕上移动,但我得到了交叉点,就像对象没有移动一样。
我在检查交叉点之前尝试在root上调用updateMatrixWorld(true),但这没什么区别。