【问题标题】:Select Collada objects by mouse Click in Three.JS在 Three.JS 中通过鼠标单击选择 Collada 对象
【发布时间】:2012-08-01 08:00:30
【问题描述】:

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

【问题讨论】:

    标签: select mouseevent webgl three.js collada


    【解决方案1】:

    假设 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 );
    

    【讨论】:

    • 感谢 Jeff 的快速回复。
    猜你喜欢
    • 2014-12-02
    • 2021-02-01
    • 2015-12-26
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多