«Модные тенденции привносят в жизнь новые проблемы и заставляют меняться» Вероятно, именно из этой мысли было принято решение включить в проект Unity гарнитуру виртуальной реальности, всем известный Oculus Rift DK2. Несмотря на жесткое испытание рублем финансового дна, нам удалось заказать Oculus Rift с доставкой в Санкт-Петербург по адекватной цене.
Оперативно, менее чем за две недели, заказ прибыл в наш офис.
Общее впечатление
В коробке, как и ожидалось, находился сам шлем, комплект необходимых кабелей, 2 комплекта линз и камера для позиционирования шлема в пространстве.После распаковки и подключения к тестовому компьютеру сразу выявилась первая странность.
Шлем отказался работать в режиме Direct Display, но прекрасно себя чувствовал в режиме второго монитора.
Причем данная особенность наблюдалась только на тестовом компьютере.
В качестве решения было предложено множество адекватных и не очень решений в виде переустановки драйверов, установки отсутствующего Microsoft Visual C++ Redistributable и других «нужных» приложений и библиотек.
После переустановки Windows шлем по-прежнему работал только в режиме расширенного дисплея.
Но мудрый коллега установил на тестовый компьютер все доступные на тот момент обновления Windows, за что ему большое спасибо.
И одно, но самое нужное из более чем тысячи установленных обновлений решило проблему; шлем начал работать в прямом режиме.
Наконец-то можно было приступить к вкусному делу — тестированию возможностей игр.
Первое впечатление - «ВАУ».
Мозг активно доказывал, что все реально и что его можно даже потрогать.
Словами это не описать, лучше попробовать.
Интеграция в проект
Оставим лирику в стороне, пора заняться серьёзными делами — интеграцией шлема в проект на движке Unity. Прежде всего скачайте официальный пакет Интеграция Oculus Unity 4 , самая последняя версия.Очень хочу сказать разработчикам пакета, спасибо, префаб плеера сделан отлично, несколько кликов позволяют погрузиться в виртуальную реальность вашего проекта.
Но изображения и определения положения и поворота головы недостаточно для полноценного проекта; необходимо сделать несколько вещей: отобразить пользовательский интерфейс;
показать курсор;
рассчитать луч от камер;
В качестве исходного префаба при запуске реализации был взят OvrCameraRig, находящийся в официальном пакете Unity.
Дисплей пользовательского интерфейса
После экспериментов и переделки всего используемого интерфейса, а его предостаточно, было выбрано самое оптимальное направление — получать изображение с камеры интерфейса в текстуру, а затем отображать его перед игроком.Добавив новый класс, отвечающий за интеграцию шлема в проект. В нем появились первые строчки кода, позволяющие найти нужную камеру по маске слоя интерфейса и получить с нее изображение.
Теги: #C++ #unity #oculus rift #программирование #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 {
-
Мотивационные Цитаты
19 Oct, 24 -
Как Читать Отчеты Ит-Компаний
19 Oct, 24