Как Виртуальная Реальность Пришла В Проект Unity

«Модные тенденции привносят в жизнь новые проблемы и заставляют меняться» Вероятно, именно из этой мысли было принято решение включить в проект Unity гарнитуру виртуальной реальности, всем известный Oculus Rift DK2. Несмотря на жесткое испытание рублем финансового дна, нам удалось заказать Oculus Rift с доставкой в Санкт-Петербург по адекватной цене.

Оперативно, менее чем за две недели, заказ прибыл в наш офис.



Как виртуальная реальность пришла в проект Unity



Общее впечатление

В коробке, как и ожидалось, находился сам шлем, комплект необходимых кабелей, 2 комплекта линз и камера для позиционирования шлема в пространстве.

После распаковки и подключения к тестовому компьютеру сразу выявилась первая странность.

Шлем отказался работать в режиме Direct Display, но прекрасно себя чувствовал в режиме второго монитора.

Причем данная особенность наблюдалась только на тестовом компьютере.

В качестве решения было предложено множество адекватных и не очень решений в виде переустановки драйверов, установки отсутствующего Microsoft Visual C++ Redistributable и других «нужных» приложений и библиотек.

После переустановки Windows шлем по-прежнему работал только в режиме расширенного дисплея.

Но мудрый коллега установил на тестовый компьютер все доступные на тот момент обновления Windows, за что ему большое спасибо.

И одно, но самое нужное из более чем тысячи установленных обновлений решило проблему; шлем начал работать в прямом режиме.

Наконец-то можно было приступить к вкусному делу — тестированию возможностей игр.

Первое впечатление - «ВАУ».

Мозг активно доказывал, что все реально и что его можно даже потрогать.

Словами это не описать, лучше попробовать.



Интеграция в проект

Оставим лирику в стороне, пора заняться серьёзными делами — интеграцией шлема в проект на движке Unity. Прежде всего скачайте официальный пакет Интеграция Oculus Unity 4 , самая последняя версия.

Очень хочу сказать разработчикам пакета, спасибо, префаб плеера сделан отлично, несколько кликов позволяют погрузиться в виртуальную реальность вашего проекта.

Но изображения и определения положения и поворота головы недостаточно для полноценного проекта; необходимо сделать несколько вещей: отобразить пользовательский интерфейс; показать курсор; рассчитать луч от камер; В качестве исходного префаба при запуске реализации был взят OvrCameraRig, находящийся в официальном пакете Unity.

Дисплей пользовательского интерфейса
После экспериментов и переделки всего используемого интерфейса, а его предостаточно, было выбрано самое оптимальное направление — получать изображение с камеры интерфейса в текстуру, а затем отображать его перед игроком.

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

   

[SerializeField] private string guiLayerName; [SerializeField] private string guiLayerPlaneName; [SerializeField] private Color backgroundColor = new Color(0, 0, 0, 0.5f); [SerializeField] private GameObject guiPlanePrefab = null; private RenderTexture _guiRenderTexture = null; private RenderTexture guiRenderTexture {

Теги: #C++ #unity #oculus rift #программирование #unity
Вместе с данным постом часто просматривают: