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