Виртуальная реальность медленно, но верно вползает в нашу жизнь. Казалось, еще совсем недавно был анонсирован первый Oculus, и вот уже каждый школьник может накопить на Google Cardboard или собрать подобную приблуду из подручных материалов: пара линз, магнит, смартфон и много картона – вот собственно все, что нужно для создания простенького шлема виртуальной реальности. Если Вы не фанат рукодельного творчества, но окунуться в виртуальную реальность очень хочется, можете купить готовый 3d шлем для смартфона на Homido.Ru. После знакомства с возможностью системы и исследования набора существующих приложений у вас, как у программиста, скорей всего появится мысль: «а не написать ли мне тоже чего-нибудь такого виртуального?» и знаете, у Вас нет никаких объективных причин не сделать этого.
На сайте google developers есть неплохая статья с примером о программировании VR. В частности, продвигается два пути: использование непосредственно OpenGL ES 2, либо создание Android VR приложений с помощью популярного движка Unity.
Для работы с виртуальной реальностью Google выпустил специальный Cardboard SDK. Этот набор позволяет отслеживать движение головы, создавать стереофоническую картинку с учетом искажений для линз, обрабатывать сообщение от магнитной кнопки на шлеме, автоматически подстраивать изображение под некоторые известные модели шлемов. В общем, все что нужно для начала работы с виртуальной реальностью. В Unity нужно подключить Cardboard через меню Assets > Import Package > Custom Package.
При запуске приложения на ПК для того чтобы эмулировать поворот головы нужно нажать кнопку Alt и подвигать мышку. Наклон эмулируется кнопкой Ctrl.
Чтобы собрать приложение для смартфона, нужно переключить Unity редактор в режим Android. Это можно сделать в меню File>Build Settings. Затем нужно нажать кнопку Player Settings и переключить Default Orientation на вкладке Resolution and Presentation в значение Landscape Left. После этого следует перейти на вкладку Other Settings и вбить в Bundle Identifier какое-нибудь уникальное значение. После этого можно нажимать Build And Run. Сцена запустится на подключенном к компьютеру смартфону.
Что касается уже существующих Unity проектов, Вы также можете добавить в них поддержку виртуальной реальности. Для этого нужно, как было описано выше, импортировать Cardboard SDK (папки Scripts and Prefabs). Подключить возможности VR можно через скрипт или в редакторе. В первом случае нужно прикрепить StereoController к MainCamera. Когда вы нажмете play, скрипт автоматически выполнит все необходимые действия и вы увидите стрео картинку. Однако, иногда бывает необходимо изменить какие-нибудь настройки. Это проще делать через редактор. Чтобы подключить виртуальную реальность в редакторе, нужно удалить MainCamera и заменить ее на CardBoardMain.
Как видите, ничего сложного. И на последок, небольшое технологичяеское демо движка