【问题标题】:Detect when object not visible to camera (behind another object) - Three.js R71检测物体何时对相机不可见(在另一个物体后面) - Three.js R71
【发布时间】:2015-03-24 23:28:02
【问题描述】:

我希望在另一个网格后面的网格时触发 intersectObjects(以检测该网格是否对相机可见)。

到目前为止,我达到的结果是 intersectObjects 在网格在另一个网格后面和前面时都会触发。

和castRay代码:

    function castRay() {
        var direction = sphere.position.clone();
        var startPoint = camera.position.clone();
        var directionVector = direction.sub( startPoint );
        var ray = new THREE.Raycaster(startPoint, directionVector.clone(). normalize());
        var intersects = ray.intersectObjects(meshGroup, true);
        if ( intersects.length > 0 ) {
            console.log("hidden");
        } 
    }

谢谢!

【问题讨论】:

  • 问题已修复...需要比较目标网格和相交网格之间的距离

标签: html three.js


【解决方案1】:

intersects 是按光线相交顺序排列的对象数组。

所以第一个对象是intersects[0],第二个是intersects[1],第三个是intersects[2],依此类推。所以intersects[1] 定义在intersects[0] 后面。

所以如果你想对前面的对象做点什么,你所要做的就是使用intersects[0]

希望对您有所帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-10
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 2011-06-30
    • 2012-12-30
    • 1970-01-01
    相关资源
    最近更新 更多