检测物体何时对相机不可见(在另一个物体后面)- 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]
.
希望对你有所帮助...
我想要 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]
.
希望对你有所帮助...