Синхронизация направления взгляда в krpano ( движок 360 панорам)

5 000 руб. за проект
06 апреля 2020, 20:23 • 2 отклика • 23 просмотра
krpano это HTML5 движок, в основном используемая для отображения 360-панорам и виртуальных туров с возможностью добавлять свой функционал на JS. У неё подробный, хорошо описанный API, работает хорошо на множестве устройств и имеет VR режим.

Моя задача, сделать так, чтобы открытый виртуальный тур в VR очках*, транслировался в браузер другого устройства ПК или планшет.
*(я использую oculus go, но для работы иметь очки не обязательно - в движке есть режим эмуляции, да и задача не VR-специфична)

На текущий момент этот вопрос я решаю с помощью scrcpy, но гнать видеопоток не очень рационально, плюс хочется иметь возможность переключать панорамы в очках с второго устройства .

Кейс на понимание: клиент надевает очки, перемещается по туру, менеджер на планшете видит куда смотрит клиент и при необходимости может сам переключать панорамы (перемещать клиента)

Как я вижу решение этой проблемы:
Вводная: Оба устройства находятся в одной локальной сети, видят друг друга напрямую. IP адреса устройств известны и статичны. Для простоты, запущенный на очках экземпляр krpano буду называть VR, второе устройство Tablet.

- VR постоянно отправляет на ip Tablet данные о текущем направлении взгляда
- Tablet принимает и отображает панораму согласно полученным данным
- При смене панорамы (в рамках одного виртуального тура) VR передает название панорамы (сцены, в терминах krpano), Tablet, соответственно, принимает и тоже подгружает эту сцену.
- Tablet имеет возможность отправить на VR команду смены панорамы, VR принимает эту команду и загружает необходимую сцену.

Впрочем если вы предложите любую другую логику, которая будет упешно решать данный кейс или внесете изменения, я не буду возражать. В итоге мне важно иметь код для внедрения в тур собранный для очков и второй код в тур собранный для планшета\ПК.