gpt4 book ai didi

THREE.js 检查对象是否在截锥体中

转载 作者:行者123 更新时间:2023-12-03 06:38:35 25 4
gpt4 key购买 nike

我一直在修改 Three.js,并且我有一个 Canvas ,我想将其用作 GUI。为此,我必须检查一个物体是否在相机视锥体中。

我当前的代码:

camera.updateMatrix(); 
camera.updateMatrixWorld();

var frustum = new THREE.Frustum();
var projScreenMatrix = new THREE.Matrix4();
projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );

frustum.setFromProjectionMatrix( camera.projectionMatrix );

if(frustum.containsPoint( mesh.position )){
//stuff happens...
};

frustum.containsPoint()不断返回 false。我在这里做错了什么?

最佳答案

您的代码正在使用

frustum.setFromMatrix( camera.projectionMatrix );

但这不是您想要的矩阵。而是使用:

frustum.setFromMatrix( new THREE.Matrix4().multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse ) );

How to determine if plane is in Three.js camera Frustum 中的回答

关于THREE.js 检查对象是否在截锥体中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24877880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com