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

时间:2015-03-24 10:26:11

标签: html5 three.js

我希望当网格在另一个网格后面时触发 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 个答案:

答案 0 :(得分:1)

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

因此,第一个对象是intersects[0],第二个intersects[1],第三个intersects[2]等等。因此intersects[1]定义为intersects[0]

因此,如果您想对前面的对象做一些事情,您只需使用intersects[0]

希望能帮到你...