检测物体何时对相机不可见(在另一个物体后面)- Three.js R71

Detect when object not visible to camera (behind another object) - Three.js R71

我想要 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");
        } 
    }

谢谢!

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

所以第一个对象是 intersects[0],第二个是 intersects[1],第三个是 intersects[2],等等。所以 intersects[1] 根据定义在 intersects[0] 后面。

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

希望对你有所帮助...