Иллюзии привлекают нас тем, что избавляют от боли, а в качестве замены приносят удовольствие. За это мы должны без сетований принимать, когда, вступая в противоречие с частью реальности, иллюзии разбиваются вдребезги.
Зигмунд Фрейд
Вы когда‑нибудь задумывались о реальности мира за окном? Мы сидим за столом, едим, спим, мы ощущаем только то, что нас окружает. Окно дает нам свет, показывает мир, который говорит нам, что время не стоит на месте, и что мы все там же где были пару минут назад — в своей комнате. Мы подходим к окну, чтобы взглянуть на зеленые деревья, небо, смотрим на мимо проезжающие машины и как в фильме «Начало» крутим волчок, спим ли мы сейчас?
Мы - команда разработчиков из лаборатории RTUITLab. Данный проект разрабатывался в течение предыдущего года и появилось желание о нем рассказать. Возможно у вас появится желание его доработать или предложение внедрить в свою систему.
В данной статье будет рассмотрен вопрос воссоздания системы виртуальной визуализации. Ваш мир за окном скоро перестанет быть реальным!
Если более техническим языком, то проект описывает применение технологий отслеживания положения тела при помощи инфракрасной камеры глубины и перемещение силуэта в виртуальную среду для изменения окружения.
За основу был взят проект с сайта, в частности репозиторий. Автор предлагает решение под IOS, где необходимая камера глубины, встроеная в iphone. Мы постарались перенести функционал с IOS на OS Windows. Для этого мы изменили архитектуру проекта под китайский аналог камеры глубины компании Orbbec (astra mini pro).
В основе технологий заложен эффект параллакса. Далее пару слов о нем.
Давайте начнем с базового
![Рис.1 - 2D-параллакс Рис.1 - 2D-параллакс](https://webcf.waybackmachine.org/web/20240526005635/https://habrastorage.org/getpro/habr/upload_files/28a/32f/e22/28a32fe228f58e362fec32c8271b712b.png)
Рассмотрим что представляет из себя параллакс в 2D. У нас есть наблюдаемый объект (Звезда), Фон (красный, белый, синий) и несколько точек обзора (А и Б). При изменении одной точки обзора на другую — будет меняться и то, на каком фоне мы увидим наш объект. Если сделать переход между точками более плавный, с промежуточными состояниями, тогда и объект будет перемешаться плавно с одного фона, проходя через белый фон, на другой.
Этот эффект используется во многих областях, то что я могу сейчас назвать - это измерение расстояния до объекта, маленьких или больших, расстояния до столба или звезды в соседнем созвездии Андромеды.
Но как мы будем применять эту технологию? Мы, как человек — будем точкой обзора, в частности наша голова, и начнем передвигаться по комнате. Нашим наблюдаемым объектом будет экран. При движении головы передвигается виртуальная камера. Ее видимое пространство всегда направлено на одну область, ограниченную вертикальными и горизонтальными рамками.
![Демонстрация с камерой orbbec astra pro Демонстрация с камерой orbbec astra pro](https://webcf.waybackmachine.org/web/20240526005635/https://habrastorage.org/getpro/habr/upload_files/dcb/6dc/edf/dcb6dcedfe105edab66a61e62960b737.gif)
Смотря на экран, создается ощущение глубины, как бы вместо экрана действительно есть еще одно маленькое помещение. С этим можно играться бесконечно, менять объекты, менять размеры экранов, и даже можно использовать обычную веб-камеру. С помощью нее отслеживать лицо и понимать, где оно находится относительно экрана.
![С обычной веб-камерой С обычной веб-камерой](https://webcf.waybackmachine.org/web/20240526005635/https://habrastorage.org/getpro/habr/upload_files/2b9/203/cc0/2b9203cc05d6aa18a86c2525064287d9.gif)
![Это я стою перед большим экраном Это я стою перед большим экраном](https://webcf.waybackmachine.org/web/20240526005635/https://habrastorage.org/getpro/habr/upload_files/cdb/b53/e63/cdbb53e635584a8d333770d5f6dd4a94.jpeg)
Использование 3D-сфер
Занимательно наблюдать за миром с помощью VR-очков, особенно когда еще и видео было записано через 360-камеру. Можно смотреть во все стороны, быть в центре происходящего. Но очки это одно, а что насчет экрана с совершенно реалистичной природой (действительно была бы она еще нереалистичной, когда снята на камеру) или что насчет улицы солнечного города? Тут нам также понадобиться экран размером с окно (но можно и меньше).
![От вида человека От вида человека](https://webcf.waybackmachine.org/web/20240526005635/https://habrastorage.org/getpro/habr/upload_files/511/beb/741/511beb741ee9c4274aa61e6c80891b98.gif)
![Запись экрана Запись экрана](https://webcf.waybackmachine.org/web/20240526005635/https://habrastorage.org/getpro/habr/upload_files/d66/760/099/d667600997271b57acabbcab69ee9187.gif)
Применение
Если вы в скором будущем планируете путешествие до другой планеты на пару-тройку лет, или более банально купили квартиру с видом на стену, может стоит задуматься над тем чтобы поставить экран и включить вид на море, горы или лес? или зачем решать сейчас, ведь каждый день можно менять визуализацию за окном.
Запорожских Александр, сотрудник RTUITLab.
Репозиторий, где располагается выше упомянутый проект