Сущность Aframe видна

Я хотел знать, как создать компонент Aframe для любого объекта, который определяет, виден ли объект камере, например атрибут bool.

"isSeen"= true || false

Я пробовал использовать тригонометрию (зная вращение камеры и положение сущностей), но у меня ничего не вышло.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
0
424
1

Ответы 1

Как насчет усики: проверка, находится ли точка (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...
      }
   }
  }
}

Зацените это в моем рабочий пример

Спасибо ! Это вроде работы, когда я добавил позицию объекта "var pos = new THREE.Vector3 (this.el.getAttribute (" position "). X, this.el.getAttribute (" position "). Y, this.el.getAttribute ("position"). z); "но он не выделяет элементы, которые имеют часть в сцене (все вокруг углов), как увеличить выделение?

Felox 18.04.2018 21:02

@FelixJely, я попытаюсь привести пример после работы, но я бы использовал .intersectsBox (), чтобы проверить, перемещается ли камера fov на элемент, и в то же время проверить центральную точку (когда объект находится в FOV, не пересекающийся с границами)

Piotr Adam Milewski 19.04.2018 12:46

Другие вопросы по теме