函数 Frustum.intersectsObject(object)
用于检查摄像机的视锥体是否与给定的物体对象 object
相交。如果相交,返回 true
,否则返回 false
。
object
:要检查的物体对象。true
:视锥体与物体相交。false
:视锥体与物体不相交。// 创建一个带有视锥体的透视相机
var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000);
// 创建一个视锥体对象
var frustum = new THREE.Frustum();
// 设置视锥体属性(同透视相机的属性)
frustum.setFromMatrix(new THREE.Matrix4().multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse));
// 创建一个立方体对象
var cube = new THREE.Mesh(new THREE.BoxGeometry(10, 10, 10), new THREE.MeshBasicMaterial({ color: 0xff0000 }));
// 检查立方体是否在视锥体中
if (frustum.intersectsObject(cube)) {
console.log('Cube is inside frustum.');
} else {
console.log('Cube is outside frustum.');
}
Frustum.intersectsObject()
函数的参数必须是一个 THREE.Object3D
类型的对象或其子类对象。如果参数类型错误会引发异常。Frustum.intersectsObject()
函数前,请确保已创建一个视锥体对象并设置好其相关属性。