我希望当网格在另一个网格后面时触发 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");
}
}
谢谢!
答案 0 :(得分:1)
intersects
是按光线交叉顺序排列的对象数组。
因此,第一个对象是intersects[0]
,第二个intersects[1]
,第三个intersects[2]
等等。因此intersects[1]
定义为intersects[0]
。
因此,如果您想对前面的对象做一些事情,您只需使用intersects[0]
。
希望能帮到你...