Язык для программирования виртуальной реальности + видео обзор

Содержание
  1. Как создать VR-приложение
  2. Просто, как раз-два-три
  3. Ещё в помощь
  4. Отличия от разработки игр
  5. Полезная литература
  6. Просто, как раз-два-три
  7. Ещё в помощь
  8. Отличия от разработки игр
  9. Полезная литература
  10. Руководство для начинающих VR-разработчиков
  11. 1. Изучаем оборудование
  12. 2. Изучаем ПО
  13. 3. Создайте или найдите арт-материалы
  14. 3D-модели
  15. Фотограмметрия (3D-сканирование)
  16. Аудио и музыка
  17. 4. Внедрение интерактивности
  18. 80+ лучших инструментов для разработчиков VR и AR
  19. Фреймворки
  20. Unity
  21. Unreal Engine 4
  22. CryEngine
  23. Amazon Sumerian
  24. A-Frame
  25. React 360
  26. Primrose
  27. Simbol
  28. Vizor
  29. Godot Engine
  30. Apertus VR
  31. Simmetri
  32. Beloola
  33. Kokowa
  34. VRCHIVE
  35. SceneVR
  36. Google Daydream
  37. Exokit
  38. 3D-моделирование и анимация
  39. Blender
  40. 3ds Max
  41. Google Blocks
  42. Mixamo
  43. Pixologic ZBrush
  44. MODO Indie
  45. Speedtree
  46. Wings3d
  47. FreeCAD
  48. Anim8or
  49. DeleD 3Deditor CE
  50. A-Painter
  51. Recap360
  52. 3D-модели
  53. Sketchfab
  54. Unity Asset Store
  55. TurboSquid
  56. Free3D
  57. NASA Space Models
  58. 3Delicious
  59. Oyonale
  60. DMI 3D
  61. CadNav
  62. Clara.io
  63. archive3D
  64. cgtrader
  65. Скетчинг и прототипирование
  66. Технические ресурсы
  67. Гайд по виртуальным мирам: AR и VR
  68. 1. Дополненная реальность (AR)
  69. 1.1. Виды AR
  70. 1.2. Софт для AR
  71. ARKit
  72. ARCore
  73. Vuforia
  74. EasyAR
  75. Lens Studio
  76. Spark AR
  77. 2. Виртуальная реальность (VR)
  78. 2.1. Виды VR
  79. 2.2. Типы отслеживания движения
  80. 2.3. Базовые термины и понятия
  81. 2.4. VR через веб-браузер
  82. 2.5. Программное обеспечение
  83. Blender
  84. Unity
  85. Unreal Engine
  86. 3. Уроки и курсы по AR и VR
  87. 3.1. AR
  88. 3.2. VR
  89. Видео

Как создать VR-приложение

При всем этом популярность VR-приложений всё ещё далека от заданных приложений, но интерес это ничуть не снижает. Так что если революция надвигается, то сейчас самое время взять знамя в собственные руки. Но как?

Язык для программирования виртуальной реальности

Просто, как раз-два-три

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

Следующем шагом будет установка правильного «движка», коим в нашем случае будет являться Unity. На сегодняшний день он наилучшим образом настроен не только для создания VR-приложений с нуля, но и на перевод в данный формат уже существующих 3D творений. Кстати, блуждая по просторам интернета вы можете наткнуться на мнение, что опция VR у Unity изначально была разработана для взаимодействия с пакетом Google Cardboard SDK, поэтому использование под iOS доставит немало трудностей. Первая часть частично правдива, а вот вторая — нет. Во всяком случае реальных проблем замечено не было.

Третий и главный шаг — среда разработки приложения, это стандартные и всем известные IDE, принципиальной разницы в данном вопросе нет.

Ещё в помощь

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

Unreal Engine
Начиная с 4 версии вам также откроется доступ к возможностям работы с VR-графикой. Однако в силу некоторой сложности и дороговизны платформы, назвать Unreal приоритетным вариантом язык не повернётся.

InstaVR
Веб-сервис, позволяющий в несколько нажатий мышкой создать собственное VR-приложение. Прекрасно подойдёт для реализации простых задумок, будь то визуализация пейзажа или виртуальная 3D консоль.

Wonda VR
Специализированный сервис для создания VR-видео. Здесь действительно легко заниматься прототипированием, склейкой видео, наложением эффектов, но и цена начинается от 499 €. Впрочем, есть 14-дневная триал-версия для оценки возможностей.

Photo Sphere
Приложение для обработки фотографий с возможностью преобразования в формат VR.

Splash
Аналогичный сервис, доступный только для iOS. Ещё находится в стадии разработки, но уже имеет неплохой функционал.

Отличия от разработки игр

Принципиальных отличий нет. С точки зрения разработки VR-приложений и 3D игр подход почти полностью совпадает, разница заключается лишь в мелких деталях. Более того, если качество 3D игр сегодня напрямую зависит и от графической составляющей и от сюжетной, то VR позволяет одним из аспектов пренебречь и остаться успешным.

Язык для программирования виртуальной реальности

Полезная литература

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

Google VR — начнем с официального руководства от Google, повествующего о том, как сделать из простой коробки чудо-развлечение;

Microsoft VR — аналогичная пошаговая инструкция, но от Microsoft;

How to make a VR app with zero experience — полезная и наглядная статья, которая поможет вам создать своё первое приложение;

Creating a Gear VR app in Unity Free — а вот и обучающее видео, как с помощью своих прямых рук и Unity создать VR-конфетку.

Не знаю, как вы, а лично я вот уже полтора года жду, когда наконец VR начнёт разрывать рынок. Сначала были картонные Google Cardboard, которые служили идеальным подарком хоть другу, хоть жене. Потом Microsoft выпустило к финалу Супербоула красочное видео, показав далекие от реальности возможности Hololens. И конечно, за 2016 год мы посмотрели и почитали немало обзоров о невероятно крутых свежеиспеченных VR устройствах, а также поиграли в первые качественные ориентированные на данные девайсы игры.

При всем этом популярность VR-приложений всё ещё далека от заданных приложений, но интерес это ничуть не снижает. Так что если революция надвигается, то сейчас самое время взять знамя в собственные руки. Но как?

Язык для программирования виртуальной реальности

Просто, как раз-два-три

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

Следующем шагом будет установка правильного «движка», коим в нашем случае будет являться Unity. На сегодняшний день он наилучшим образом настроен не только для создания VR-приложений с нуля, но и на перевод в данный формат уже существующих 3D творений. Кстати, блуждая по просторам интернета вы можете наткнуться на мнение, что опция VR у Unity изначально была разработана для взаимодействия с пакетом Google Cardboard SDK, поэтому использование под iOS доставит немало трудностей. Первая часть частично правдива, а вот вторая — нет. Во всяком случае реальных проблем замечено не было.

Третий и главный шаг — среда разработки приложения, это стандартные и всем известные IDE, принципиальной разницы в данном вопросе нет.

Ещё в помощь

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

Unreal Engine
Начиная с 4 версии вам также откроется доступ к возможностям работы с VR-графикой. Однако в силу некоторой сложности и дороговизны платформы, назвать Unreal приоритетным вариантом язык не повернётся.

InstaVR
Веб-сервис, позволяющий в несколько нажатий мышкой создать собственное VR-приложение. Прекрасно подойдёт для реализации простых задумок, будь то визуализация пейзажа или виртуальная 3D консоль.

Wonda VR
Специализированный сервис для создания VR-видео. Здесь действительно легко заниматься прототипированием, склейкой видео, наложением эффектов, но и цена начинается от 499 €. Впрочем, есть 14-дневная триал-версия для оценки возможностей.

Photo Sphere
Приложение для обработки фотографий с возможностью преобразования в формат VR.

Splash
Аналогичный сервис, доступный только для iOS. Ещё находится в стадии разработки, но уже имеет неплохой функционал.

Отличия от разработки игр

Принципиальных отличий нет. С точки зрения разработки VR-приложений и 3D игр подход почти полностью совпадает, разница заключается лишь в мелких деталях. Более того, если качество 3D игр сегодня напрямую зависит и от графической составляющей и от сюжетной, то VR позволяет одним из аспектов пренебречь и остаться успешным.

Язык для программирования виртуальной реальности

Полезная литература

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

Google VR — начнем с официального руководства от Google, повествующего о том, как сделать из простой коробки чудо-развлечение;

Microsoft VR — аналогичная пошаговая инструкция, но от Microsoft;

How to make a VR app with zero experience — полезная и наглядная статья, которая поможет вам создать своё первое приложение;

Creating a Gear VR app in Unity Free — а вот и обучающее видео, как с помощью своих прямых рук и Unity создать VR-конфетку.

Источник

Руководство для начинающих VR-разработчиков

Язык для программирования виртуальной реальности

В этом руководстве собраны базовые ссылки и рекомендации, которые могут послужить вам точкой отсчёта в освоении VR-разработки.

1. Изучаем оборудование

Спросите себя: меня интересует разработка для десктопных устройств, наподобие HTC Vive, или меня больше привлекают мобильные устройства вроде Samsung Gear VR или Google Cardboard? Если вы пока не определились, то почитайте обзоры и подумайте о том, что лучше выбрать для вашего рынка. Если для ваших идей требуются контроллеры движения или качественная графика, то ориентируйтесь на подключаемые к компьютеру очки VR. Модели, которые сегодня поддерживаются движками Unity, Unreal и веб-реaлизациями:

Компьютерная VR:

2. Изучаем ПО

Дизайн для VR очень похож на дизайн видеоигр, поскольку в обоих случаях мы имеем дело с интерактивным 3D-опытом. Разница в том, что в VR нужно уделять особое внимание эффекту присутствия, погружённости, нелинейности повествования, не вызывающему тошноты перемещению и графической оптимизации.

Большинство VR-разработчиков предпочитают использовать игровые движки (если только не создают для веб-VR, о чём ниже), и с самого начала им приходится выбирать, на чём же работать. Самые популярные движки — Unreal Engine 4 (UE4) и Unity. Оба имеют очень широкие возможности и являются надёжными инструментами. Вокруг обоих сложились активные сообщества с многочисленными информационными ресурсами. Оба движка позволяют управлять 3D-окружением, импортировать собственный контент (3D-модели, изображения, звук, видео), а также программировать интерактивность и геймплей. На YouTube есть огромное количество обучающих видео, а в сети — руководств, созданных как самими авторами, так и поклонниками.

Помимо игровых движков, вы можете обратиться к разработке интерактивных VR-веб-страниц. Это можно делать с помощью языка разметки Mozilla’s A-Frame, с помощью JavaScript (поковыряйтесь в Three.js!), HTML5 и/или WebGL. Подобные эксперименты ведутся в Chrome и Mozilla. Разработка для веба позволяет отображать VR-контент прямо на смартфонах пользователей, так что вам не понадобится дорогое дополнительное оборудование. Также вам не придётся компилировать или упаковывать код, вы легко можете делиться своими творениями с друзьями. Если вам всё это кажется слишком трудоёмким, то можете начать с простейшего редактора VR-сцен Vizor, позволяющего рисовать на компьютере и просматривать с мобильных устройств.

После того, как вы определитесь с движком или веб-приложением, надо поподробнее ознакомиться со своим выбором. Начните с азов того языка программирования, который использует ваш инструмент: C++ и Blueprints Visual Scripting (UE4), C# (Unity) или кастомный язык разметки для веб-приложений. Если вы разрабатываете для Android, то скачайте Android Studio и попробуйте развернуть тренировочное приложение. В случае с Google Cardboard и Unity обратитесь к Google SDK.

В /learnVRdev wiki есть ссылки и материалы, полезные для тех, кто учится использовать движки. Лучше знакомиться с движком по какому-нибудь руководству, чтобы лучше прочувствовать его, как манипулировать объектами в пространстве, и так далее. В Unity и Unreal есть встроенный предпросмотр, так что вы можете сразу увидеть, что у вас получилось!

3. Создайте или найдите арт-материалы

Итак, вы выбрали движок и обзавелись VR-устройством. Теперь вам нужен графический контент, аудио материалы, 3D-модели и анимации для заполнения виртуального мира. Всё это можно найти в сети, надёргать из популярных игр (если вы не планируете продавать свой продукт), сделать самостоятельно или модифицировать готовые материалы. Помните, что виртуальная реальность требует максимально реалистичного визуального и звукового оформления при близком исследовании, с разных сторон, даже если объект стилизован или абстрактен.

3D-модели

У начинающих есть два пути.

Фотограмметрия (3D-сканирование)

Как и VR, трёхмерное фотосканирование — это ещё одна футуристическая технология, уже доступная для использования в дешёвых мобильных решениях. Фотограмметрия — это использование многочисленных фотографий настоящих объектов с разных ракурсов для построения их моделей. Фотографии импортируются в приложения вроде Agisoft Photoscan, или одно из многочисленных решений от Autodesk, и на их основе генерируются подробные сетчатые модели. Затем их вместе с цветовыми/диффузными текстурными картами можно экспортировать и использовать в игровом движке в качестве регулярного ресурса. Весь процесс хорошо показан на YouTube.

Аудио и музыка

Работа со звуковыми эффектами в VR не слишком отличается от работы над музыкой и эффектами в кино и традиционных играх. Как и в случае с графикой, нужно делать упор на реализм и качество. Наибольшая степень погружения достигается с помощью размещения источников звука относительно позиции игрока, направления его взгляда. Чтобы Unity и UE4 корректно функционировали с точки зрения звука, их придётся настраивать.

4. Внедрение интерактивности

После того, как вы освоитесь с движком и приготовите арт-материалы, нужно будет придумать, как придать вашему проекту интерактивности. Я очень рекомендую сначала почитать о принципах построения UI и UX в виртуальной реальности. Иначе у ваших пользователей могут заболеть глаза от плохих решений по стереоскопическому рендерингу, или их укачает. Этого можно избежать, просто отказавшись от привязки текста к полю просмотра, или поместив камеру игрока во время движения в видимую капсулу (автомобиль, скафандр, кабину). А если вы хотите реализовать ручное управление, то рекомендую делать всё как можно реалистичнее — ваши усилия по исследованию и прототипированию будут вознаграждены чувством присутствия.

Полезные ресурсы по UI/UX в виртуальной реальности

Источник

80+ лучших инструментов для разработчиков VR и AR

Язык для программирования виртуальной реальности

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

Фреймворки

Unity

Unreal Engine 4

CryEngine

Amazon Sumerian

Amazon Sumerian позволяет быстро и удобно создавать VR, AR и 3D-приложения даже тем, кто не имеет в этом опыта. Он совместим с Oculus Rift, Oculus Go, HTC Vive, Google Daydream, Lenovo Mirage, а также мобильными устройствами на Android и iOS. Создать аккаунт можно бесплатно, далее плата взимается на основе объёма хранимых 3D-ресурсов и генерируемого сценами трафика.

A-Frame

A-Frame — это опенсорсный веб-фреймворк для создания VR под HTC Vive, Oculus Rift, десктопные и мобильные платформы. Он бесплатен, не требует дополнительной установки и работает с HTML.

React 360

React 360 — хороший инструмент для создания интерактивных панорамных и VR-приложений. Это тоже опенсорсный инструмент для создания проектов под ПК, мобильные устройства и гарнитуры виртуальной реальности.

Primrose

Primrose используется для разработки VR в браузере. С помощью него можно создавать 3D-чаты, среды для программирования в онлайн-режиме, игры, музыкальные синтезаторы и многое другое. Инструмент бесплатен.

Simbol

Simbol позволяет создавать социальные VR-проекты на основе 3D-контента. Можно создавать «виртуальных личностей», которые могут взаимодействовать с виртуальным миром. Simbol также бесплатен.

Vizor

С помощью Vizor можно создавать VR-контент и легко делиться им на любом устройстве с выходом в интернет. Преимущественно используется для VR-сторителлинга.

Godot Engine

Godot Engine — бесплатный игровой движок с открытым кодом. Очень прост и удобен в использовании, поэтому отлично подходит для разработчиков без опыта в создании VR-игр.

Apertus VR

Apertus VR — бесплатный движок для создания виртуальной, дополненной и смешанной реальности, который позволяет интегрировать эти технологии в новые или существующие продукты.

Simmetri

Beloola

Beloola — платформа для создания 3D-пространств, где можно в режиме онлайн встречаться и общаться с людьми.

Kokowa

Kokowa — бесплатная платформа для не-программистов, которая упрощает создание и распространение webVR-контента.

VRCHIVE

VRCHIVE позволяет создавать 360-градусные панорамы и делиться ими на различных устройствах.

SceneVR

SceneVR — это новый способ сторителлинга, который помогает запросто преобразовывать панорамные фото в VR-сцены.

LÖVR — простой и бесплатный фреймворк для создания VR на скриптовом языке Lua. Проекты LÖVR можно запускать на Oculus Rift и HTC Rift, а также экспортировать в WebVR.

Google Daydream

Google Daydream — платформа для создания высококачественных мобильных VR-проектов. Она включает SDK для Android, iOS, Unity, Unreal, Android NDK и веба.

Exokit

Exokit — опенсорсный веб-движок на JavaScript для разработки VR-проектов под десктопные, мобильные платформы и шлемы, AR-проектов для мобильные платформ и шлемов, Unity и других.

3D-моделирование и анимация

Blender

Blender — бесплатный инструментарий для создания 3D-моделей, симуляций, анимаций, риггинга, рендеринга, компоновки и захвата движения, создания игр и редактирования видео.

3ds Max

3ds Max — программа 3D-моделирования и рендеринга, помогающая создавать обширные миры в играх.

Google Blocks

6 инструментов Blocks позволяют создавать как простые, так и более сложные модели в VR.

Mixamo

Благодаря Mixamo можно запросто создавать анимированных трёхмерных героев без какого-либо опыта.

Pixologic ZBrush

ZBrush — отличный инструмент для разработки цифровых скульптур в реальном времени.

MODO Indie

MODO Indie предоставляет средства для создания объёмных моделей, анимаций и скульптур.

Speedtree

Speedtree — инструмент визуализации растений в 3D для UE4.

Wings3d

Wings 3D — это продвинутый редактор с широким выбором инструментов моделирования и кастомизируемым интерфейсом.

FreeCAD

FreeCAD — бесплатный 3D-редактор для разработки объектов любого масштаба.

Anim8or

Anim8or — программа для 3D-моделирования и анимирования героев.

DeleD 3Deditor CE

DeleD совмещает 3D-редактор и редактор уровней. Он предназначен для создания статичных сцен в играх.

A-Painter

A-Painter позволяет рисовать в 3D, используя ручные контроллеры.

Recap360

Recap360 превращает фотографии в трёхмерные модели.

3D-модели

Sketchfab

Sketchfab — платформа, где можно искать и размещать 3D-модели.

Unity Asset Store

TurboSquid

TurboSquid предлагает 3D-модели для игровых разработчиков, новостных агентств, архитекторов, студий визуальных эффектов, рекламщиков и креативщиков по всему миру.

Free3D

Free3D содержит коллекцию более 16 тысяч бесплатных 3D-моделей.

NASA Space Models

У NASA есть своя библиотека моделей разнообразных объектов, связанных с космосом: от космонавтов до лунных модулей и шаттлов.

3Delicious

3Delicious среди прочего предоставляет трёхмерные модели автомобилей, мебели и различных технологий.

Oyonale

Oyonale предлагает достойный ассортимент качественных объёмных моделей.

DMI 3D

DMI 3D содержит модели транспортных средств: от танков Второй мировой войны до современных гоночных авто.

CadNav

Clara.io

Clara.io предлагает 3D-модели транспорта, людей, архитектурных сооружений и многого другого.

archive3D

На archive3D можно скачать множество трёхмерных моделей мебели.

cgtrader

На cgtrader доступны для скачивания самые разнообразные бесплатные 3D-модели.

Скетчинг и прототипирование

Gravity Sketch — интуитивный инструмент для работы со смешанной реальностью, который позволяет создавать 3D-модели и концептуальные эскизы.

Tilt Brush позволяет рисовать в виртуальном 3D-пространстве.

Quill — полезный текстовый редактор.

Substance — программа для рисования в 3D и текстурирования объектов с помощью кистей, масок и частиц.

Quixel содержит тысячи PBR-материалов для игр, визуализации и эффектов.

Unbound предоставляет игрокам увлекательный способ создания трёхмерных объектов.

Oculus Medium позволяет проектировать, разрисовывать, моделировать и создавать предметы в VR.

Textures.com содержит цифровые изображения различных материалов: тканей, древесины, металла, камней, пластика и других.

Технические ресурсы

VR Toolkit — набор скриптов для разработки прототипов в Unity.

VR Glossary — глоссарий терминов, используемых в индустрии VR.

VRTK — набор скриптов, которые пригодятся при работе с Unity3d 5+.

NewtonVR — система взаимодействия с виртуальной реальностью для отслеживаемых контроллеров.

Unity Tutorials — список лучших туториалов от Unity.

More Unity Tutorials — другие хорошие руководства Unity.

Blender Tutorials — коллекция видеоуроков по Blender.

Oculus Best Practices — руководства по созданию классного VR-контента.

Unity Hotkeys — подборка горячих клавиш Unity.

Good lighting resources for Unity — список ресурсов по освещению в Unity.

How to Render your Blocks with Unity — видеоурок на YouTube по рендерингу блоков в Unity.

GPU Performance for Game Artists — статья о производительности для художников игр.

The Book of Shaders — пошаговое руководство по фрагментным шейдерам.

Unity Compute Shaders — Youtube-туториал по использованию вычислительных шейдеров.

Create a Fog Shader — гид по созданию шейдеров тумана.

Mixed Lighting in Unity — статья о смешанном свете в Unity.

Getting Started in WebVR — здесь можно познакомиться с WebVR.

Export a rotating GIF in Blender — Youtube-туториал по экспорту вращающихся GIF-изображений в Blender.

Game Engine Architecture — книга Джейсона Грегори по архитектуре игровых движков и созданию игр.

Vision Science — книга Стивена Палмера.

Computer Vision: Algorithms and Applications — ресурс, содержащий более 900 страниц алгоритмов и приложений.

VR Design Best Practices — статья о VR-дизайне на Medium.

Mitch’s VR Lab — полезный Youtube-канал о VR.

Five ways to reduce motion sickness in VR — видеоурок на Youtube по уменьшению VR-тошноты.

Хотите сообщить важную новость? Пишите в Телеграм-бот.

А также подписывайтесь на наш Телеграм-канал.

Источник

Гайд по виртуальным мирам: AR и VR

Язык для программирования виртуальной реальности

1. Дополненная реальность (AR)

Дополненная реальность (англ. augmented reality) – это технология, которая расширяет физический мир, накладывая на него слои цифровой информации: звуки, видео, графику.

1.1. Виды AR

Обычно рассматривают четыре типа дополненной реальности:

В marker-based AR требуется конкретный шаблон, маркер, например, QR-код, поверх которого накладывается виртуальный объект.

Язык для программирования виртуальной реальностиРис. 1. Маркерная AR

Как видно из названия, для разработки markerless приложения маркер не нужен. На окружающую среду накладывается сетка и обнаруживаются ключевые точки, к которым привязывается виртуальная модель.

Язык для программирования виртуальной реальностиРис. 2. Безмаркерная AR

Projection-based AR разработан для того, чтобы сделать заводские предприятия умнее, безопаснее и эффективнее. Проектор устраняет необходимость в бумажных инструкциях, создавая цифровой слой практически на любой рабочей поверхности.

Superimposition-based AR частично или полностью заменяет исходное представление объекта дополненным представлением того же самого объекта.

1.2. Софт для AR

Чтобы создать приложение дополненной реальности, понадобится набор средств разработки (software development kit, SDK). Ниже мы рассмотрели наиболее популярные SDK.

ARKit

ARKit – это SDK для создания приложений дополненной реальности и игр для iPhone и iPad. Для него характерны следующие черты:

Reality Composer – редактор для создания 3D-моделей.

RealityKit – рендеринг и анимация.

Поддерживаемые платформы: iOS 11.0 и выше.

ARCore

На ARKit компания Google ответила своей разработкой – ARCore.

Поддерживаемые платформы: Android 7.0 и выше, iOS 11 и выше.

Vuforia

Поддерживаемые платформы: Android 4.4.4 и выше, iOS 11 и выше.

EasyAR

Поддерживаемые платформы: Android, iOS.

Lens Studio

Поддерживаемые платформы: Snapchat.

Spark AR

Поддерживаемые платформы: Instagram.

2. Виртуальная реальность (VR)

Виртуальная реальность (англ. virtual reality) – компьютерная симуляция альтернативной реальности.

2.1. Виды VR

Автономная VR работает сама по себе, без необходимости использования дополнительного внешнего оборудования (компьютер, консоль), например, Oculus Quest. Всё, что нужно, – это гарнитура и контроллеры VR.

VR на базе ПК – это любые гарнитуры, требующие постоянного подключения к ПК, такие как: PC Oculus Rift S, Valve Index, HTC Vive, Pimax и Windows Mixed Reality.

Когда говорят о VR для консоли, обычно имеют ввиду PlayStation VR для PlayStation 4.

Язык для программирования виртуальной реальностиРис. 4. PlayStation VR

2.2. Типы отслеживания движения

Наиболее распространенный способ отслеживания движений – система Inside-Out с камерами, встроенными в гарнитуру. Такой подход реализован в Oculus Rift S, HTC Vive Cosmos и всех гарнитурах Windows Mixed Reality.

Существует также схема отслеживания Outside-In с размещением базовых станций в углах комнаты, помогающих гарнитуре и контроллерам отслеживать их точное местоположение (HTC Vive Cosmos Elite, Valve Index).

Язык для программирования виртуальной реальностиРис. 5. Отслеживание Outside-In и Inside-Out

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

2.3. Базовые термины и понятия

Поле зрения (FOV). В контексте гарнитур VR поле зрения относится ко всему, что вы можете видеть в виртуальном мире при использовании гарнитуры.

Язык для программирования виртуальной реальностиРис. 6. Поле зрения (FOV)

Степени свободы (DoF). Чем больше степеней свободы, тем больше физических движений будет отслеживаться гарнитурой. 3DoF (3 степени свободы) отслеживает только перемещение головы: крен, тангаж, рыскание, но не положение в пространстве по координатам (x, y, z). В современных гарнитурах используется 6DoF, отслеживающий как движения головы, так и ее координаты.

Язык для программирования виртуальной реальностиРис. 7. Степени свободы 3DoF и 6DoF

Frames Per Second (FPS) – количество кадров в секунду.

Screen Resolution – количество пикселей, отображаемых на экране.

Spatial Audio (3D аудио) – пространственное звучание (используется для создания звука, который исходит из определенной точки виртуального мира).

Язык для программирования виртуальной реальностиРис. 8. Spatial Audio (3D аудио)

2.4. VR через веб-браузер

WebGL – кроссплатформенный API для 3D-графики в браузере. Исполняется как элемент HTML5 и поэтому является полноценной частью объектной модели документа (DOM API) браузера. Может использоваться с языками программирования, поддерживающими DOM API: JavaScript, Rust, Java, Kotlin и др.

Для упрощения работы с WebGL существуют различные фреймворки. Все они распространяются под свободной лицензией (MIT, Apache 2 или BSD), написаны на JavaScript и имеют сходный набор функций: работа с геометрией, материалом, светом, анимацией, камерами, шейдерами, текстом и 3D-аудио. Вот некоторые из них:

2.5. Программное обеспечение

Blender

Unity

Unity является наиболее распространенным инструментом для разработки VR. С его помощью можно импортировать модели, созданные в Blender, настроить взаимодействие с этими моделями, а также их физику. Для скриптинга используется C# и UnityScript, напоминающий JavaScript. На этом движке можно создавать приложения для WebGL, Oculus Rift и HTC Vive. Также есть интеграция с ARCore, ARKit.

Цена: бесплатно и не требует отчислений с прибыли.

Ограничение: объем привлеченных инвестиций не более 100 тыс. долл. за последние 12 мес.

Unreal Engine

Основной конкурент Unity – Unreal Engine. В нем можно писать на C++ и Blueprints (визуальное программирование). Поддерживаемые платформы: AR (Android, iOS), VR (Google VR, Oculus, Gear VR, SteamVR, Windows MR)

Ограничение: 5% от выручки с продаж, если ежеквартальная выручка превышает 3 тыс. долл.

3. Уроки и курсы по AR и VR

3.1. AR

3.2. VR

Итак, для разработки AR-приложений основными инструментами являются ARkit и ARCore. Если вы пишете на JavaScript, обратите внимание на AR фреймворки, работающие через веб-браузер. С языками в VR всё очевидно: C# в Unity, C++ в Unreal Engine. Рынок AR и VR будет расти, так что успейте запрыгнуть в поезд, пока он не ушел!

Источник

Видео

С чего начать изучение VR и AR? Разработка c нуля

С чего начать изучение VR и AR? Разработка c нуля

Я программирую в VR! На 5 виртуальных мониторах :D

Я программирую в VR! На 5 виртуальных мониторах :D

Какой язык программирования учить в 2022?

Какой язык программирования учить в 2022?

Разработка в дополненной и виртуальной реальности: нишевый бизнес с нуля до мировых брендов-клиентов

Разработка в дополненной и виртуальной реальности: нишевый бизнес с нуля до мировых брендов-клиентов

Введение в VR разработку на Unity (XR Platform Unity)

Введение в VR разработку на Unity (XR Platform Unity)

Самые Перспективные Сферы Программирования И Как В Них Ворваться

Самые Перспективные Сферы Программирования И Как В Них Ворваться

Ruby vs Python || Сравнение и какой язык программирования выбрать?

Ruby vs Python || Сравнение и какой язык программирования выбрать?

Не любил математику — стал программистом

Не любил математику — стал программистом

Какой язык программирования выбрать в 2022 году?

Какой язык программирования выбрать в 2022 году?

Стоит ли выбирать язык программирования Ruby?

Стоит ли выбирать язык программирования Ruby?
Поделиться или сохранить к себе:
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных, принимаю Политику конфиденциальности и условия Пользовательского соглашения.