2

我需要通过鼠标单击在 Three.JS 中选择 Collada 对象。我知道我可以根据他们的 id 选择对象,并且我看到了一些用户可以与几何定义的对象交互的示例(here)。但我需要访问 Collada 格式的对象。

4

1 回答 1

2

假设这dae_scene是从 ColladaLoader 返回的 COLLADA 场景,您可以执行以下操作来检查交叉点:

var toIntersect = [];
THREE.SceneUtils.traverseHierarchy(dae_scene, function (child) {
    if (child instanceof THREE.Mesh) {
        toIntersect.push(child);
    }
});

这将获取 COLLADA 场景中的所有 Mesh 对象。然后,您可以使用该数组来查找射线交点,如下所示:

var ray = new THREE.Ray( camera.position,
                         vector.subSelf( camera.position ).normalize() );
var intersects = ray.intersectObjects( toIntersect );
于 2012-08-03T15:05:54.873 回答