Я хочу дополнить изображение стационарной веб-камеры маркерами на основе определения местоположения. Это должно быть добавлено к существующему приложению React, которое уже использует три. js (через response-three-fiber ) в других частях, поэтому эти технологии должны быть повторно использованы.
Хотя довольно просто рассчитать положение маркеров (известные местоположения) относительно камеры (известное местоположение), Я борюсь с конфигурацией камеры , чтобы получить хорошее визуальное соответствие между «реальный» объект и маркер AR.
Я создал кодовую коробку с искусственным примером , иллюстрирующим проблему.
Вот моя попытка настройки камеры:
const camera = {
position: [0, 1.5, 0],
fov: 85,
near: 0.005,
far: 1000
};
const bearing = 109; // degrees
<Canvas camera={camera}>
<Scene bearing={bearing}/>
</Canvas>
Далее в компоненте сцены я поворачиваю камеру в соответствии с ориентацией веб-камеры следующим образом:
...
const rotation = { x: 0, y: bearing * -1, z: 0 };
camera.rotation.x = (rotation.x * Math.PI) / 180;
camera.rotation.y = (rotation.y * Math.PI) / 180;
camera.rotation.z = (rotation.z * Math.PI) / 180;
...
Любые советы / мысли о том, как настроить эту камеру для хорошее совпадение из трех. js коробок и реальных объектов?