@Devastor
I ❤❤❤ JAVASCRIPT

Как в three.js искать ближайший к Raycaster объект?

Хотелось бы сделать THREE.Raycaster() более "толстым", что бы срабатывало не только прямое пересечение, но и можно было находить ближайший к Raycaster объект?
  • Вопрос задан
  • 909 просмотров
Решения вопроса 1
@nikolaysemenov
1. Вызываем метод intersectObjects, получаем массив точек пересечения с моделью, берем ближайшую
2. Берем вектор куда стреляли (обозначим A), например, по двум точкам (откуда стреляли и куда попали)
3. По каким-то критериям получаем список объектов, которые по грубой оценке, могут нас интересовать (например, находятся не дальше какого-то расстояния и т.д.)
4. Для каждого подходящего объекта ищем вектор направления из точки откуда стреляли в центр объекта (обозначим Bi)
5. Нормируем все векторы, ищем угол между векторами A и Bi
6. Выбираем объект, обладающий наименьшим углом отклонения
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Такое обычно делается через коллизию невидимого цилиндра (луча, как указателя) с другими объектами...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы