首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aframe实体

Aframe实体
EN

Stack Overflow用户
提问于 2018-04-18 14:43:49
回答 1查看 731关注 0票数 2

我想知道如何为任何定义实体是否被摄像机看到的实体提供Aframe组件,比如bool属性。

代码语言:javascript
复制
"isSeen"= true || false

我尝试了三角学(知道相机的旋转和实体的位置),但我失败了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-18 15:00:13

如何:检查一个点(x,y,z)是否在相机的视野内。

代码相当简单。要在一个框架内使用它,您可以创建一个组件,该组件将检查每个呈现循环中是否看到了点:

代码语言:javascript
复制
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...
      }
   }
  }
}

看看我的小提琴

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49902680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档