首页 文章

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

提问于
浏览
0

我希望当网格在另一个网格后面时触发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");
        } 
    }

谢谢!

1 回答

  • 1

    intersects 是按光线交叉顺序排列的对象数组 .

    所以第一个对象是 intersects[0] ,第二个是 intersects[1] ,第三个是 intersects[2] 等等 . 所以 intersects[1] 的定义是 intersects[0] .

    因此,如果你想对前面的对象做一些事情,你所要做的就是使用 intersects[0] .

    希望能帮到你......

相关问题