Javascript three.js:我如何判断矢量3是否在照相机内;你的观点是什么?

Javascript three.js:我如何判断矢量3是否在照相机内;你的观点是什么?,javascript,camera,three.js,Javascript,Camera,Three.js,使用three.js,是否有一种快速且廉价的方法来检查点/矢量3是否在相机的视野内 我希望创建一个长方体网格来填充场景的“地板”,但只填充到不会平移或旋转的可见区域的边缘(或者至少每个长方体的原点位于可见区域,剩余部分悬挂在视图之外)。作为奖励,它也可能是好的限制从相机的位置,盒子可以“生活”的深度 虽然我现在无法找到一个明确的答案,但这可能只是因为缺少找到正确答案所需的正确术语。欢迎提供澄清和快速示例 起动器代码: var scene=new THREE.scene(); var摄像机=新的

使用three.js,是否有一种快速且廉价的方法来检查点/矢量3是否在相机的视野内

我希望创建一个长方体网格来填充场景的“地板”,但只填充到不会平移或旋转的可见区域的边缘(或者至少每个长方体的原点位于可见区域,剩余部分悬挂在视图之外)。作为奖励,它也可能是好的限制从相机的位置,盒子可以“生活”的深度

虽然我现在无法找到一个明确的答案,但这可能只是因为缺少找到正确答案所需的正确术语。欢迎提供澄清和快速示例

起动器代码:

var scene=new THREE.scene();
var摄像机=新的三透视摄像机(75,window.innerWidth/window.innerHeight,0.11000);
var vec=新的三个向量3(0,0,10);
//??? 如何判断Vector3是否在摄像机的视野内?
var renderer=new THREE.WebGLRenderer();
document.body.appendChild(renderer.doElement);
log('是的,在这一点上它只是一个黑屏/黑屏')
body{margin:0;}
画布{宽度:100%;高度:100%}

找出矢量

按照中的说明取下相机平台

然后,打电话

if(frustum.containsPoint( vec ))  
    { ...
编辑:基于上述问题的完整更新示例:

var scene=new THREE.scene();
var摄像机=新的三透视摄像机(75,window.innerWidth/window.innerHeight,0.11000);
//var vec=新的三个向量3(0,0,10)//幕后
var vec=新的三个向量3(0,0,-10)//镜头前
//检查是否在摄像机视图内:
camera.updateMatrix();//确保相机的本地矩阵已更新
camera.updateMatrix();//确保相机的世界矩阵已更新
camera.matrixWorldInverse.getInverse(camera.matrixWorld);
var trustum=新的三个.trustum();
setFromMatrix(新的三个.Matrix4().multiply(camera.projectionMatrix,camera.matrixWorldInverse));
if(截锥体包含点(矢量)){
console.log(“摄像机视图内”);
}否则{
console.log(“外部摄像机视图”);
}
var renderer=new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement)
body{margin:0;}
画布{宽度:100%;高度:100%}

找出矢量