用鼠标选择Collada对象在Three.JS中单击

时间:2012-08-03 09:20:18

标签: select mouseevent webgl three.js collada

我需要通过鼠标点击选择Three.JS中的Collada对象。我知道我可以根据他们的id选择对象,我看到一些用户可以与Geometry定义的对象(here)交互的样本。但我需要访问Collada格式的对象。

1 个答案:

答案 0 :(得分: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 );