Впервые на русском: Документация Oculus для разработчиков. Бинокулярное зрение, стереоскопическая визуализация и индикаторы глубины

Продолжаем публикацию эксклюзивной информации для разработчиков от Oculus. Новый раздел посвящён бинокулярному зрению, стереоскопической визуализации и индикаторам глубины.Документация Oculus для разработчиков:

  1. Введение в рекомендации
  2. Бинокулярное зрение, стереоскопическая визуализация и индикаторы глубины
  3. Поле зрения и масштаб

Чтобы оставаться в курсе новостей о виртуальной реальности, подписывайтесь на наш Telegram!

  • Мозг использует отличия между двумя точками зрения ваших глаз для того, чтобы понимать глубину изображения и пространства.
  • Не пренебрегайте монокулярными индикаторами глубины, такими как текстура и освещение.
  • Самый удобный диапазон глубины для пользователя в Oculus Rift – это от 0,75 до 3,5 метров (1 единица в Unity равняется 1 метру).
  • Задайте расстояние между виртуальными камерами равное расстоянию между зрачками пользователя с помощью инструмента настройки OVR.
  • Убедитесь, что изображения в каждом глазу отвечают друг другу и соответствуют, а также правильно накладываются друг на друга. Эффекты, которые отображаются только в одном глазу или значительно отличаются между обоими глазами, кажутся ненормальными.
Основы

Бинокулярное зрение объясняет то, как мы в одно и то же время имеем две точки зрения на мир – и вид, получаемый каждым глазом, который несколько отличается, наш мозг объединяет в одно трёхмерное стереоскопическое изображение, которое также известно под названием стереопсис. Разница между тем, что мы видим с помощью нашего левого глаза, и тем, что мы видим с помощью нашего правого глаза, порождает бинокулярное неравенство. Стереопсис возникает, когда мы видим физический мир с различных точек зрения с помощью каждого из наших глаз – или из-за двух плоских изображений с соответствующими различиями (неравенствами) между ними.

Oculus Rift предоставляет два изображения, по одному для каждого глаза, которые сгенерированы двумя виртуальными камерами, разделяемыми небольшим расстоянием. Далее определим некоторую терминологию. Расстояние между двумя нашими глазами называется межзрачковым расстоянием (IPD), и мы принимаем его за аналогичное расстояние между двумя виртуальными камерами для рендеринга, которые захватывают изображение в виртуальной среде как расстояние между камерами (ICD). Хотя IPD может варьироваться от 52 до 78 мм, среднее IPD (основанное на результатах опроса, в котором принимало участие примерно 4 000 военнослужащих армии США) составляет около 63,5 мм – такая же величина взята за среднее межосевое пространство (IAD) в Oculus Rift, которое является расстоянием между центральными осями обеих линз Oculus Rift (с момента последней редакции этого руководства).

Монокулярные индикаторы глубины

Стереопсис является лишь одной из многих индикаторов глубины для нашего мозгового процесса. Большинство других индикаторов глубины являются монокулярными; это значит, что они передают глубину даже тогда, когда они улавливаются только одним глазом или видны на плоском изображении, которое видит оба глаза. В виртуальной реальности параллакс движения из-за движений головы не требует стереопсиса для того, чтобы видеть глубину, однако он всё равно остаётся чрезвычайно важным для передачи глубины и обеспечения удобного пользовательского опыта.

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

Комфортное расстояние для просмотра внутри Oculus Rift

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

Oculus Rift, как и любая другая стереоскопическая 3D-технология (например, 3D-фильмы), создает необычную ситуацию, в которой происходит расщепление аккомодационных и вергентных требований – аккомодативные требования фиксируются на одном значении, но вергентные могут подвергаться изменениям. Это связано с тем, что реальные изображения для создания стереоскопического 3D всегда отображаются на экране, который оптически остаётся на одинаковом расстоянии, однако разные изображения, которые показываются каждому глазу, всё ещё требуют того, чтобы глаза вращались для того, чтобы линии взгляда сходились на объектах во множестве различных плоскостей глубины.

Исследование этого вопроса было посвящено изучению того, в какой степени аккомодационные и вергентные требования могут различаться по отношению другу к другу, прежде чем это становится неудобным для пользователя. [1] Текущая оптика Oculus Rift настроена таким образом, чтобы быть эквивалентной просмотру экрана на расстоянии примерно в 1,3 метра. (Производственные допустимые отклонения и мощность линз Oculus Rift приводят к тому, что это число является приблизительным допущением). Для того, чтобы не допустить возникновения зрительного напряжения, объекты, на которых, как вы знаете, пользователь будет фиксировать свой взгляд в течение длительного периода времени (например, меню, объект, представляющий интерес для окружающей среды), должны находиться на расстоянии приблизительно от 0,75 до 3,5 метров.

Очевидно, что для полной виртуальной среды требуется рендеринг определённого количества объектов за пределами этого оптимального и комфортного диапазона. Поскольку пользователям не требуется взглядом фиксировать эти объекты в течение длительных периодов времени, они не должны вызывать трудностей. При программировании в Unity 1 единица будет соответствовать примерно 1 метру в реальном мире, поэтому объекты в фокусе должны быть расположены на расстоянии от 0,75 до 3,5 единиц.

Наши исследования, которые на данный момент продолжаются, и разработки могут позволить будущим версиям Oculus Rift получить улучшенную оптику, чтобы расширить диапазон комфортного расстояния просмотра. Вне зависимости от того, как изменяется этот диапазон, расстояние в 2,5 метра остаётся тем комфортным значением, которое делает расстояние безопасным, а также наиболее перспективным для закреплённых элементов, на которых пользователям придётся сосредотачиваться в течение длительного времени, например, на меню или графическом интерфейсе.

Как ни парадоксально, но некоторые пользователи Oculus Rift отмечают необычность фокусированного просмотра всех объектов в окружающем мире, когда линзы их глаз приспосабливаются к плоскости глубины виртуального экрана. Это может потенциально привести к расстройству или напряжению глаз у небольшого числа пользователей, поскольку их глаза могут испытывать трудности с надлежащей фокусировкой.

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

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

Эффекты расстояния между камерами

Изменение расстояния между камерами, или расстояния между двумя камерами рендеринга, может оказать существенное влияние на пользователей. Если расстояние между камерами увеличивается, это создает эффект, который известен как гиперстерео, при котором глубина становится преувеличенной; если расстояние уменьшается, глубина будет сплющена – это состояние, которое известно как гипостерео. Изменение расстояния между камерами даёт два дополнительных эффекта для пользователя. Во-первых, оно изменяет степень того, как взгляд двух глаз должен сходиться в одной точке, чтобы увидеть конкретный объект. По мере увеличения расстояния между камерами пользователям приходится прилагать больше усилий для того, чтобы взгляд двух глаз сходился для просмотра одного и того же объекта, что может привести к утомлению глаз. Во-вторых, изменение расстояния между камерами может изменить у пользователя ощущение своего собственного размера внутри виртуальной среды. Последний эффект будет рассматриваться далее в разделе «Создание контента», части «Масштаб пользователя и среды».

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

Расстояние между камерами (ICD), то есть между левой и правой камерами, (слева) должно быть пропорционально расстоянию между зрачками пользователя (IPD; справа). Любой масштабирующий коэффициент, который применяется к расстоянию между камерами, должен применяться ко всей модели головы и учитывать рекомендации по расстоянию, приведенные в данном руководстве.

Потенциальные проблемы при наложении двух изображений

Мы часто сталкиваемся в реальном мире с ситуациями, в которых каждый глаз получает совсем разную точку зрения, и у нас, как правило, это не вызывает проблемы. Подглядывание одним глазом из-за угла работает в виртуальной реальности точно так же, как и в реальной жизни. Фактически, разные точки зрения двух глаз могут быть даже полезными: скажем, вы спецагент (в реальной жизни или в виртуальной реальности), который пытается укрыться в высокой траве. Отличающиеся точки зрения обоих ваших глаз позволяют вам смотреть «сквозь» траву, чтобы отслеживать своё окружающее пространство так же, как если бы травы вовсе не было перед вами. Однако, делая то же самое в видеоиграх на 2D экране, мы получаем мир, который скрыт от взгляда за каждой полоской травы.

Тем не менее, виртуальная реальность (как и любые другие стереоскопические изображения) может создавать некоторые потенциально необычные ситуации, которые могут вызвать раздражение у пользователя. Например, эффекты рендеринга (такие, как искажения света, эффекты частиц или светлый цвет) должны отображаться в обоих глазах и с правильным отличием. Если этого достичь не удаётся, эффекты могут проявляться в виде мигания/мерцания (когда что-то отображается только в одном глазу) или привести к положению на неправильной глубине (если несоответствия между глазами нет или этот эффект не отображается в контекстуальной глубине объекта так, как это должно быть – например, при зеркальном затемнённом проходе). Важно обеспечить все необходимые условия для того, чтобы изображения для двух глазами не отличались друг от друга кардинально, за исключением слегка разных точек обзора, характерных для бинокулярного неравенства.

Хотя менее вероятно, что это превратится в проблему в сложной трёхмерной среде, может оказаться важным обеспечение того, чтобы глаза пользователя получали достаточно информации для мозга, чтобы понять, как правильно наложить изображения и интерпретировать их. Обычно достаточно линий и граней, которые составляют трёхмерное изображение; однако вам следует быть осторожным при использовании широких рядов повторяющихся узоров, которые могут заставить взгляд пользователей накладывать изображения в глазу не так, как предполагалось. Имейте в виду также, что оптические иллюзии глубины (такие, как «иллюзия полой маски», при которой вогнутые поверхности кажутся выпуклыми) могут иногда приводить к неправильному восприятию, особенно в ситуациях, когда монокулярные индикаторы глубины являются разреженными между собой.

[1] Шибата, T., Ким, Дж., Хоффман, Д.М., Бэнкс, M.С. (2011). Зона комфорта: Прогнозирование зрительного дискомфорта при стереоизображениях. Journal of Vision, 11(8), 1-29.

 

Примечание: Данный материал представлен для ознакомления, при перепечатывании ссылка на оригинал обязательна. Если вы хотите принять участие в помощи проекту, пишите на editor@vrgeek.ru

 

Если вы разработчик и вы хотите продолжить свою карьеру в лучших компаниях России, пишите на editor@vrgeek.ru с пометкой «Работа мечты», и мы поможем вам с этим.