О, тема в моей области) Работаю в стартапе, занимающемся AR.
Итак, по пунктам:
AR ЕЩЁ БОЛЕЕ привязан к качеству трекинга поциента, чем VR. Отсюда огромный головняк у... в общем-то, всех. Дело в том, что нормальный трекинг "прямщас" есть только у гугла на его Tango. Да и тот даёт масштаб в реальных еденицах только при наличии и использовании depth-камеры.
Depth - это, прежде всего, гемор с тем, что далеко не у всех он есть (только-только начали появляться смарты со стерео-камерами; и да, со стерео depth получается, но далёк от идеала), а во-вторых (если делать по человечески, как Kinect с его сеткой или
ToF-система) - батарейка. Никто не хочет, чтобы его смарт садился за 1.5-2 часа игры.
Далее. Какая есть альтернатива? Можно сесть и написать нормальный визуальный трекинг, совместить его с магическим интегратором IMU-данных (акселерометры-гироскопы), навернуть сверху sensor fusion - и получить хороший трекинг. Танго это почти делает, только к real-world скейлу у них привязки без depth нету. Мы, собственно, пытаемся сделать описаное выше.
Другой поход - marker-based трекинг. Более-менее точно, надёжно, но нужно таскать с собой листик с маркером чтобы получить привязку к реальному миру.
И вот это всё ^ только ради того, чтобы покемон висел как прибитый гвоздями к реальному миру, никуда не уплывал и имел сопоставимый с реальными объектами размер. Кидать птиц рукой - задача ещё сложнее. Это тебе нужно на видеопотоке выделить руку, воссоздать из горстки пикселей "рука-не рука" скелет человека и просчитать кинематику броска. На мобильном девайсе. Так, чтобы не тормозило. Не убивая при этом поток с трекингом (иначе бросок рукой оказывается не привязан к системе координат трекинга). Good luck with that, как говорится.
Следующая проблема - это хардвар и его ограничения. Думали, что на производительности всё кончается? Щщщаз.
Дальше нас ждут неутешительные приключения с камерами, у которых FoV ужасен, что выливается во-первых в очень херовый user experience (даже хуже, чем VR, потому что если в VR можно виртуальной камерой снимать хотя бы 90-120 градусов, то камерой мобилки, как правило, больше 70 не снимешь). Я не сидел в танке, но подозреваю, что где-то так себя чувствует машинист, наблюдая мир через свою крошечную щель.
А ВО-ВТОРЫХ камера с малым FoV - это смерть для трекера, потому что малый угол обзора = мало "фич" в картинке, за которые можно зацепиться при трекинге = любой резкий поворот выбивает трекинг.
И ещё приколы с камерами. Практически все камеры мобилок - rolling shutter, что значит, что они снимают картинку с сенсора построково. И если камера в процессе получения данных с сенсора двигалась (а она двигалась), то кадр "плывёт", появляются искажения.
Пример. Конечно, сейчас все хотят писать видео на 60 ФПС и сенсор опрашивается быстрее, искажения меньше, но они ещё есть. В идеальном мире все камеры были бы с global shutter, но увы и ах - хуй-с.
А другой знатный прикол с камерами заключается в том, что все модули сенсор+линза имеют искажения. А трекеру нужно эти искажения компенсировать, чтобы геометрия отслеживания позиции между кадрами сходилась. Чтобы это сделать, нужно картинку выгнуть в другую сторону, а для этого нужны коэффициенты искажений. Где их брать? Камеру нужно откалибрировать. Т.е. показать ей известный паттерн на гарантированно плоской поверхности с разных углов и просчитать эти коэффициенты. В принципе, это можно делать на девайсе уже у юзера, но нужно ему объяснить, как он должен возюкать смартфоном вокруг паттерна. Можно было бы и на заводе, но "чот никто не заинтересовался".
Анекдот: пытались мы откалибровать камеру моей Lumia 920. И никак не могли, ошибка в 5 пикселей (это очень много, для сравнения, сносный результат - это 0.5 пикселя ошибки). А потом я вспомнил, что одна из фич, за которую я взял этот девайс - это честная механическая оптическая стабилизация видео. Линза плавает, все коэффициенты искажений и параметры камеры (типа фокального расстояния и фокальной точки) тоже плавают.
Ну и Джокер верно подметил про рынок VR, а с AR ещё грустнее. Так что пока что AR - это для бизнеса, всяких мед. учреждений и т.п., а не для игорь.