Основы виртуальной реальности. Часть 3

В третьей части статьи продолжим обсуждение последних событий, технологий и терминов в области виртуальной реальности, помня о том, что HMD означает крепящийся на голове дисплей (head-mounted display).

С предыдущими частями можно ознакомиться по ссылкам:

Основы виртуальной реальности. Часть 1

Основы виртуальной реальности. Часть 2

Компания FOVE (www.getfove.com и заглавный рисунок) – от слова «fovea» (фовея, т.е. часть глаза, обеспечивающая фокусировку зрения) – разработала шлем HMD с отслеживанием движения глаз и даже показала возможность управления пользовательским интерфейсом на этой основе. Кроме прочего, такая технология позволяет настроить глубину зоны обзора в зависимости от фокусной точки взгляда (проще говоря, получить динамическое управление резкостью вне зависимости от расстояния предметов от наблюдателя).

Мы уже отметили в предыдущих частях этой статьи важность вычислительной мощности для корректного воспроизведения виртуальной реальности по параметрам частоты кадров/полукадров и супернизкой задержки при отрисовке. Однако нужно особо подчеркнуть, что при широком угле зрения вовсе не обязательно добиваться высокого разрешения для всего поля зрения, поскольку особенность человеческих глаз приводит к тому, что люди не видят четких деталей изображения в области так называемого периферийного зрения (где не сфокусирован взгляд). Поэтому слежение за глазами открывает широкие возможности для «foveated rendering (фоветного/воронкообразного отображения/рендеринга)». Это означает, что разные части изображения выводятся с разным разрешением, когда высокая четкость обеспечивается только в области, куда направлен взгляд. Это позволить резко снизить требуемую графическую мощность и в корне изменить все текущие принципы компьютерного рендеринга изображений.

Osnovy-virtualnoi-realnosti-chast-3-01
Cortex от Sulon Technologies

Нельзя не отметить и разработки компании Sulon Technologies в области смешанной/дополненной реальности (mixed/augmented-reality), когда в шлеме HMD компьютерное изображение накладывается на обычное. В принципе, именно к этому классу можно отнести Magic Leap и очки HoloLens от Microsoft. В шлем Sulon Cortex встроены две видеокамеры, снимающие окружающее пространство, а дополнительный наложенный слой может формироваться внешним ПК или вставленным смартфоном.

Перемещение в пространстве (Locomotion): эффект присутствия в VR должен обеспечивать все ощущения, свойственные обычному движению тела в пространстве. Иначе иллюзия будет потеряна, поскольку «картинка» для глаз не будет согласована с предыдущим опытом человека, постоянно перемещающегося в пространстве. Пока здесь нет особых достижений, хотя HTC/Valve обещают для Vive работу в области 1,4 кв. метров вокруг владельца шлема, а CV1 от Oculus уже показала уверенную работу примерно в третьей части этого пространства.

Osnovy-virtualnoi-realnosti-chast-3-02
Cyberith Virtualizer

Причем перемещение в пространстве можно моделировать (симулировать), как это делается сейчас в N-мерных кинотеатрах с движущимися согласно сюжету креслами на пневмоприводах. По такому пути собираются идти Virtuix Omni и еще пара добровольческих проектов на Kickstarter. Во всех случаях присутствует подвижная управляемая платформа, положение которой (или положение человека на ней) отслеживается камерой (Cyberith Virtualizer) или датчиками, встроенными в специальные чехлы, одеваемые поверх ботинок (Virtuix Omni).

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

Низкая инерционность (Low Persistence) обнаружилась сразу после выхода Oculus Rift DK1 на рынок в виде размытости изображения (motion blur) при быстром повороте шлема. В этом нет ничего удивительного, ведь использовавшаяся дисплейная панель (как и все остальные) разрабатывалась для отображения достаточно статичных изображений (компьютерных) вместо динамической смены кадров в кинематографе. Более того, практически все алгоритмы сжатия изображений предполагают наличие статичного фона для движущихся предметов. В результате при быстром повороте головы накладывалось изображение сразу нескольких кадров. Современные панели OLED имеют более высокую частоту кадров, но даже ее недостаточно для устранения проблемы с инерционностью изображения. В Oculus Rift DK2 и выше, Sony PSVR, HTC Vive и других современных шлемах с проблемой инерционности борются за счет полного гашения предыдущего кадра до начала вывода нового. Для этого с учетом динамического порога человеческого глаза (48 кадров в секунду, после которых смена статичных изображений кажется плавным движением) требуется частота развертки не менее 75 кадров/секунду, но контента с таким разрешением просто не существует, поэтому приходится прибегать к очередному обману человеческого глаза на основе технологии Asynchronous Timewarp (асинхронное искажение шкалы времени), позволяющей не слишком повышать требования к графической подсистеме и графическому процессору GPU в частности. Суть в том, что для промежуточных кадров, отображаемых во время поворота головы, по специальным алгоритмам в реальном времени формируется несколько искусственно созданных кадров, которые вставляются между двумя «истинными» кадрами для начала и конца поворота головы. Причем «искривление (warp)» согласовано с параметрами поворота головы. Однако это решение только из-за недостатка вычислительной мощности, поэтому на не слишком быстрых графических картах или когда процессор отвлекается на другие задач Asynchronous Timewarp приводит к двоению изображения:

Osnovy-virtualnoi-realnosti-chast-3-03

Формальных стандартов для Asynchronous Timewarp пока нет в графических библиотеках DirectX и OpenGL, но есть несколько функций в лицензированных SDK (комплект разработчика ПО) от AMD и Nvidia исключительно для собственных графических карт.

У AMD есть еще технология Liquid VR (http://www.amd.com/en-us/innovations/software-technologies/technologies-gaming/vr ) в виде независимого кода прикладного интерфейса AMD API для платформы Mantle для более быстрого доступа на аппаратный уровень в сравнении с DirectX 11. Совместно Mantle и Liquid VR обеспечивают функциональные возможности асинхронного вычислительного двигателя-ядра (asynchronous compute engine, ACE), позволяющее выполнять некоторые графические команды заранее, если это позволяет текущая загрузка графического процессора GPU. В частности, Liquid VR в многопроцессорных системах позволяет четко разделить команды так сказать для правого и левого глаза, а также обеспечивает низкоуровневый доступ к шлему HMD без программных «прослоек» в виде SDK, как в Oculus VR или Razer OSVR.

Osnovy-virtualnoi-realnosti-chast-3-04

С другой стороны, GameWorks VR (https://developer.nvidia.com/virtual-reality-development ) от Nvidia предлагает менее формализованный интерфейс API, например упомянутая выше технология Asynchronous Timewarp в Nvidia GameWorks реализована на уровне драйвера. Как и в AMD Liquid VR, у Nvidia есть SLI VR для распределения нагрузки по нескольким процессорам. Но главный козырь Nvidia связан с эллиптической предобработкой изображения. По разным причинам шлемы/очки VR имеют линзы, поэтому на экран нужно выводить специально подготовленное (специально искаженное) изображение, которое покажется весьма странным при просмотре без устройства HMD.

До сего времени графические процессоры обрабатывали все пиксели «нормального» изображения, которое затем преобразовывалось в эллиптический вид для шлема VR причем с удалением некоторых пикселей и растягиванием других. Если закладывать искажения на этапе основной обработки, то требования к вычислительной мощности графической подсистемы можно сократить на 30…50%.

Источник:
http://www.tomshardware.com/reviews/virtual-reality-basics,4220.html

Интересные записи