作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在修改 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/
我是一名优秀的程序员,十分优秀!