我想知道如何为任何定义实体是否被摄像机看到的实体提供Aframe组件,比如bool属性。
"isSeen"= true || false我尝试了三角学(知道相机的旋转和实体的位置),但我失败了。
发布于 2018-04-18 15:00:13
如何果:检查一个点(x,y,z)是否在相机的视野内。
代码相当简单。要在一个框架内使用它,您可以创建一个组件,该组件将检查每个呈现循环中是否看到了点:
AFRAME.registerComponent('foo', {
tick: function() {
if (this.el.sceneEl.camera) {
var cam = this.el.sceneEl.camera
var frustum = new THREE.Frustum();
frustum.setFromMatrix(new THREE.Matrix4().multiplyMatrices(cam.projectionMatrix,
cam.matrixWorldInverse));
// Your 3d point to check
var pos = new THREE.Vector3(x, y, z);
if (frustum.containsPoint(pos)) {
// Do something with the position...
}
}
}
}看看我的小提琴
https://stackoverflow.com/questions/49902680
复制相似问题