Проектирование

Экран

Обновлено: 11 мар 2026 г.
При создании контента для гарнитур с поддержкой стереоскопических иммерсивных приложений разработчики сталкиваются с уникальными задачами, отсутствующими в традиционном контенте, не связанном с XR. Для создания качественного контента необходимо обладать знаниями и использовать техники, специфичные для XR-дисплеев. В следующих разделах рассмотрены различные аспекты технологии отображения XR, а также рекомендации по созданию контента для достижения оптимальных результатов.

Зрение

Этот раздел содержит советы и объяснения по отображению виртуального мира пользователям.

Использование монокулярных сигналов глубины

Невозможность правильно представить глубину объектов разрушает впечатления от полностью иммерсивных приложений. Стереопсис, восприятие глубины на основании диспропорции между точками зрения каждого глаза, — наиболее заметный сигнал глубины, но это лишь один из многих способов обработки мозгом информации о глубине.
Многие визуальные сигналы глубины монокулярны, т. е. передают глубину, даже когда их видит только один глаз или когда они появляются на плоском изображении, просматриваемом обоими глазами.
Одним из таких сигналов глубины служит параллакс движения, или степень, в которой объекты на разных расстояниях кажутся движущимися с разной скоростью при движении головы.
К другим сигналам глубины относятся криволинейная перспектива (прямые линии сходятся по мере удаления), относительный масштаб (объекты становятся меньше, когда они находятся дальше), окклюзия (более близкие объекты загораживают вид на более удаленные), воздушная перспектива (удаленные объекты кажутся более тусклыми, чем близкие, из-за преломляющих свойств атмосферы), градиенты текстур (повторяющиеся узоры становятся более плотными по мере удаления) и освещение (блики и тени помогают нам воспринимать форму и положение объектов).
Контент, генерируемый современными компьютерами (например, созданный в Unreal и Unity) использует множество таких сигналов глубины, но мы упоминаем их, потому что их важность легко не учесть. При некорректной реализации приложение может стать неудобным или трудным для восприятия из-за конфликтующих сигналов глубины.

Удобные расстояния для обзора

Два аспекта имеют первостепенное значение для понимания зрительного комфорта при фокусировке глаз на объекте в условиях полного погружения: аккомодационная и вергентная нагрузка. Аккомодационная нагрузка относится к тому, как глаза должны изменять форму хрусталиков, чтобы сфокусироваться на плоскости глубины (этот процесс называется аккомодацией). Вергентная нагрузка относится к степени, с которой глаза должны вращаться внутрь, чтобы их линии зрения пересекались на определенной плоскости глубины. В физическом мире эти два процесса сильно взаимосвязаны — настолько, что у нас есть так называемый аккомодационно-конвергенционный рефлекс: степень конвергенции глаз влияет на аккомодацию хрусталиков и наоборот.
Полностью иммерсивные приложения создают необычную ситуацию, при которой аккомодационная и вергентная нагрузки разделяются: аккомодационная нагрузка остается фиксированной, в то время как вергентная может изменяться. Это происходит потому, что реальные изображения для создания стереоскопического 3D всегда отображаются на экране, который оптически остается на одном и том же расстоянии, но разные изображения, представленные каждому глазу, всё равно требуют, чтобы глаза вращались, чтобы их линии зрения сходились на объектах на различных плоскостях глубины.
Степень, до которой аккомодационная и вергентная нагрузки могут различаться, прежде чем это станет неудобным для пользователя, может варьироваться. Чтобы предотвратить напряжение глаз, объекты, на которых пользователь будет фокусировать взгляд в течение длительного времени (например, меню или интересующий объект в окружении), следует отображать на расстоянии не менее 0,5 метра. Многие считают, что 1 метр — это комфортное расстояние для меню и графических интерфейсов, на которых пользователи могут фокусировать внимание в течение длительного времени.
В полной виртуальной среде некоторые объекты должны отображаться за пределами комфортного диапазона. Если от пользователя не требуется концентрировать внимание на этих объектах в течение длительного времени, они не должны вызывать дискомфорта у большинства людей.
Некоторые разработчики обнаружили, что эффекты глубины резкости могут быть одновременно и иммерсивными, и удобными для ситуаций, в которых известно, куда смотрит пользователь. Например, можно искусственно размыть фон за меню, которое вызывает пользователь, или размыть объекты, находящиеся вне плоскости глубины объекта, который вы держите в руках для изучения, чтобы достичь такого эффекта. Это не только имитирует естественное функционирование зрения в физическом мире, но и предотвращает отвлечение глаз на заметные объекты, находящиеся вне фокуса пользователя.
Пользователь может решить вести себя неразумно. Пользователь может решить стоять так, что его глаза будут в нескольких сантиметрах от объекта, и смотреть на него весь день. Не требуйте сценариев, которые могут вызвать дискомфорт.

Взгляд на объекты на расстоянии

На определенном расстоянии восприятие глубины ослабевает. Вблизи стереоскопическое зрение помогает определить, какой из двух предметов на столе расположен на несколько миллиметров ближе. Дальше это становится сложнее. Если посмотреть на два дерева на противоположной стороне парка, расстояние между ними должно составлять несколько метров, чтобы вы смогли с уверенностью сказать, какое из них ближе, а какое дальше. В ещё более крупных масштабах будет трудно определить, какая из двух гор горного хребта находится ближе к вам, если разница не будет достигать нескольких километров.
Используйте относительную нечувствительность к восприятию глубины на расстоянии, чтобы высвободить вычислительную мощность, заменяя полностью 3D-сцены текстурами-импостерами или билбордами. Например, вместо того чтобы изображать далекий холм в 3D, просто наложите плоское изображение холма на один полигон, который будет отображаться в изображениях для левого и правого глаза. Это изображение предстает перед глазами в полностью иммерсивных приложениях так же, как и в традиционных 3D-играх.
Эффективность этих импостеров будет варьироваться в зависимости от размера задействованных объектов, сигналов глубины внутри и вокруг этих объектов, а также контекста, в котором они появляются. Протестируйте отдельно объекты приложения, чтобы убедиться, что импостеры выглядят и ощущаются правильно. Убедитесь, что импостеры находятся на достаточном расстоянии от камеры, чтобы они могли гармонично сливаться с окружением, а интерфейсы между физическими и импостерными элементами сцены не нарушают погружение.

Рендеринг стереоскопических изображений

В физическом мире мы часто сталкиваемся с ситуациями, когда разные глаза получают разные точки зрения, и обычно это не вызывает у нас затруднений. Заглядывание за угол одним глазом работает в полностью иммерсивных приложениях так же хорошо, как и в физическом мире. На самом деле разные точки зрения могут быть полезны: например, если есть специальный агент (в физическом мире или в полностью иммерсивном приложении), который пытается спрятаться в высокой траве. Разные точки обзора позволяют ему смотреть "сквозь" траву, благодаря чему он может наблюдать за окружением, как будто перед ним нет травы. Если сделать то же самое в видеоигре на двухмерном экране, мир может оказаться полностью скрытым за каждой травинкой.
Тем не менее, полностью иммерсивные приложения (как и любое другое стереоскопическое изображение) может создавать некоторые ситуации, которые могут быть некомфортными для пользователя. Например, эффекты рендеринга (такие как искажение света, эффекты частиц или расплывание света) должны всегда отображаться в обоих глазах и с правильным расхождением. Некорректное отображение этих эффектов может привести к мерцанию или искрению (когда что-то видно только одним глазом) или к неправильному восприятию глубины (если возникает расхождение или если постобработка не учитывает контекстуальную глубину объекта, например при отрисовке бликового освещения). Важно убедиться, что изображения для каждого глаза не отличаются друг от друга в дополнение к слегка разному положению глаз, присущего бинокулярному расхождению.
Обычно это не будет проблемой в сложных 3D-средах, но обязательно дайте мозгу пользователя достаточно информации, чтобы соединить стереоскопические изображения воедино. Линий и граней, составляющих 3D-сцену, как правило, достаточно. Однако будьте очень осторожны с использованием широких полос повторяющихся узоров или текстур — это может привести к тому, что люди будут воспринимать изображения не так, как задумано. Помните также, что оптические иллюзии глубины (такие как иллюзия полой маски, когда вогнутые поверхности кажутся выпуклыми) иногда может привести к неправильному восприятию, особенно в ситуациях, когда монокулярные сигналы глубины скудны.

Отображение информации в полностью иммерсивных приложениях

Мы не рекомендуем использовать традиционные головные дисплеи для отображения информации в полностью иммерсивных приложениях. Вместо этого встраивайте информацию в окружение или аватар пользователя. Хотя при продуманном редизайне некоторые традиционные условности могут работать, простой перенос головного дисплея из неиммерсивной игры в полностью иммерсивный контент создает новые проблемы, которые делают их непрактичными или даже дискомфортными.
При включении некоторых элементов индикаторной панели обратите внимание на следующие моменты:
  • Окклюзия сцены элементами индикаторной панели. Это не будет проблемой в нестереоскопических играх, потому что пользователь может легко предположить, что дисплей действительно находится перед всем остальным. Добавление бинокулярного расхождения (небольшой разницы между изображениями, проецируемыми на каждый глаз) в качестве сигнала глубины может создать противоречие, если элемент сцены находится ближе к пользователю, чем плоскость глубины дисплея. На основе окклюзии головной дисплей кажется расположенным ближе, чем элемент сцены, поскольку он закрывает всё, что находится за ним, однако бинокулярное расхождение показывает, что дисплей находится дальше, чем элемент сцены, который он закрывает. Это может привести к трудностям и (или) дискомфорту при попытке совместить изображения для головного дисплея или окружения.
  • Элементы индикаторной панели "за" объектами сцены. Этот эффект очень часто встречается при использовании прицелов, субтитров и других видов плавающих элементов пользовательского интерфейса. Часто бывает, что объект, который должен находиться за стеной (с точки зрения расстояния до камеры), рисуется перед стеной, потому что он реализован как оверлей. Это создает противоречивое представление о глубине этих объектов, что может быть некомфортно.

Традиционные индикаторные панели создают проблемы в иммерсивных сценах из-за восприятия глубины.

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

Точка отсчета камеры и перспектива пользователя

Учитывайте высоту пользователя или высоту его точки обзора, так как это может быть фактором, вызывающим дискомфорт. Чем ниже точка обзора пользователя, тем быстрее меняется плоскость земли, создавая более интенсивное отображение оптического потока. Это может вызывать неприятные ощущения по той же причине, по которой бывает некомфортно подниматься по лестнице: интенсивный оптический поток в поле зрения.
При разработке полностью иммерсивного приложения точка отсчета камеры может находиться — на полу или на глазах пользователя (эти точки называются "пол" и "глаз" соответственно). Оба варианта имеют определенные преимущества и недостатки.
Использование пола в качестве точки отсчета приведет к тому, что точка обзора людей будет находиться на той же высоте от земли, что и в физическом мире. Согласование высоты виртуальной точки обзора с высотой физического мира может усилить ощущение погружения. Однако рост у людей разный. Чтобы визуализировать виртуальное тело, создайте решение, способное масштабироваться в зависимости от роста людей.
Использование глаз пользователя в качестве исходной точки камеры позволяет контролировать его рост в виртуальном мире. Это полезно для визуализации виртуальных тел определенного роста, а также для создания перспектив, отличных от физических (например, можно показать людям, как выглядит мир глазами ребенка). Однако при использовании точки глаза в качестве точки отсчета местоположение физического пола становится неизвестным. Это усложняет взаимодействие, связанное с пригибанием или подбиранием предметов с земли. Поскольку рост пользователя неизвестен, можно добавить шаг повторной калибровки в начале приложения, чтобы точно зафиксировать рост пользователя в физическом мире.

Управление цветом

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

Основы цветоведения

В этом разделе представлена базовая терминология цветоведения. Чтобы ознакомиться с рекомендациями, перейдите к разделу Цвет на устройствах Meta Quest.

Цвет как восприятие

Хотя мы привыкли говорить, что объекты "имеют" цвет (например, "это яблоко красное"), на самом деле цвет — это не свойство объектов, а наше восприятие их. Это результат взаимодействия видимого спектра света, попадающего в нашу зрительную систему, с реакцией фоторецепторов сетчатки, обработанной нашей нервной системой. В иммерсивном приложении задача часто состоит в том, чтобы изображение, видимое через линзы гарнитуры, вызывало аналогичное восприятие физической сцены или позволило воображаемому миру восприниматься так, как задумал его автор, даже если автор и конечный пользователь используют разные устройства.
Переходя от восприятия цвета к техническим аспектам цветовых пространств, важно понять основную связь между светом и нашим зрительным опытом. Цвета, которые мы воспринимаем, — это результат взаимодействия света, окружения и наших глаз. Испускаемый или отражаемый свет представляет собой электромагнитное излучение, охватывающего широкий спектр длин волн.
Интересно, что разные длины волн могут создавать одинаковую цветовую реакцию. Это называется метамерией. Это происходит из-за ограниченного количества цветовых рецепторов в наших глазах, которые реагируют на определенные диапазоны длин волн. Например, длинные волны (примерно 620–750 нанометров) воспринимаются как красный цвет, средние волны (примерно 520–570 нанометров) — как зеленый, а короткие волны (примерно 450–495 нанометров) — как синий. Эти отдельные кластеры длин волн, смешиваясь в различных пропорциях, создают богатую палитру цветов, которые мы воспринимаем в окружающем мире.
Цветной свет можно представить как комбинацию чистых "лазерных" цветов, аналогично тому, как звуковые волны комбинируются для создания сложных звуков. Так же, как разные звуковые волны могут вызывать одинаковое восприятие тона, разные световые волны могут создавать одинаковое восприятие цвета. Понимание этих основ закладывает базу для изучения технических аспектов цветовых пространств. Далее мы рассмотрим, как эти длины волн представляются и управляются на устройствах Meta Quest.

Цветовые пространства

В силу трихроматической природы человеческой зрительной системы для создания множества оттенков на излучающих дисплеях требуется свет трех цветов, смешивающихся в различных пропорциях. Дисплеи используют красный, зеленый и синий (RGB) как основные цвета, поскольку они соответствуют функциям отклика наших фоторецепторов. Диапазон цветов, который можно получить, смешивая три этих света с различной интенсивностью, конкретный оттенок белого, создаваемый при смешивании всех трех цветов на полной мощности, а также функции для преобразования значений смеси для более эффективного хранения и обработки — всё это определяет цветовое пространство. Цветовое пространство можно представить как единицы измерения для определения цвета. Так же, как расстояние бессмысленно без указания единиц (например, 1 миля против 1,609 километров), цвета, выраженные в виде RGB-триплетов, имеют смысл только в контексте цветового пространства.
Цветовое пространство может быть определено следующими характеристиками:
Хроматические характеристики
Для красного, зеленого и синего компонентов это их фактический оттенок и насыщенность (яркость не включается). Обычно выражается в координатах x,y в цветовом пространстве CIE 1931.
Точка белого цвета
Хроматичность белого цвета, получаемого при смешивании трех основных цветов на 100 % (яркость также не включается). Обычно задается координатами x,y в пространстве CIE 1931 или как стандартный источник света, например, D65.
Функция передачи
Обратимая монотонная функция, преобразующая линейные значения света (например, пропорциональные количеству фотонов) каждого основного цвета в форму, более подходящую для передачи или обработки. Для цифровых изображений функции преобразования обеспечивают эффективное квантование. Связанные термины:
  • OETF (оптико-электронная функция передачи): преобразует линейный свет в закодированные значения.
  • EOTF (электро-оптическая функция передачи): преобразует закодированные значения обратно в линейный свет.
Примечание. Для устройств со стандартным динамическим диапазоном (SDR), таких как гарнитуры Meta Quest, интенсивность белого цвета на 100 % (например, при максимальной интенсивности всех трех цветов) зависит от яркости оптической системы (света, видимого через линзы гарнитуры). Для устройств Meta Quest это значение обычно составляет 100 нит при установке яркости на 100 %.

Цвет на устройствах Meta Quest

Гарнитуры Meta Quest проходят заводскую калибровку, чтобы обеспечить согласованность отображения между устройствами и точное воспроизведение заданных цветов. Калибровка измеряет свет, излучаемый дисплеем, и тот, что проходит через линзы. Для гарнитур с двумя независимыми дисплеями (Meta Quest Pro, Meta Quest 3) калибровка предотвращает бинокулярное несоответствие (когда из-за различий в цветах невозможно слить изображения для левого и правого глаза) и обеспечивает равномерность яркости (глаза получают одинаковый отклик яркости). Эта заводская калибровка избавляет разработчиков от необходимости учитывать эти сложности, так как устройство воспринимается как единая, согласованная система.
В данный момент гарнитуры Meta Quest охватывают цветовой диапазон sRGB. Meta Quest Pro поддерживает расширенные цветовые возможности, охватывая диапазон Display P3, а также имеет увеличенную контрастность благодаря подсветке с локальным затемнением.

Рекомендации по подготовке контента

Мы рекомендуем подготавливать контент и ориентироваться на расширенное цветовое пространство Display P3. Оно охватывает примерно на 50 % больше цветов с более насыщенными оттенками по сравнению с sRGB.
Иллюстрация, показывающая более насыщенные оттенки красного, синего и зеленого в Display P3 по сравнению с sRGB (источник).
Учитывайте, что большинство стандартных устройств поддерживают только стандартный цветовой диапазон sRGB. Значения, выходящие за пределы диапазона, просто обрезаются. Используйте цвета, характерные только для Display P3 (то есть те, которые превышают диапазон sRGB), с осторожностью, например, для выделения деталей или преднамеренно насыщенного контента.
Контент, подготовленный для Display P3 (слева), будет обрезан при отображении на устройстве с поддержкой только sRGB (в центре). Хотя обрезанные пиксели выглядят иначе, чем на оригинале (справа), это считается приемлемым ухудшением качества: устройства с поддержкой Display P3 отобразят все насыщенные цвета, тогда как устройства с sRGB сохранят достаточно деталей.
Поскольку во всех текущих гарнитурах Meta Quest используются жидкокристаллические экраны, темные пиксели не будут такими темными, как ожидалось. Оптический модуль дополнительно снижает доступный контраст. Ограничения жидкокристаллических экранов не позволяют им достоверно различать уровни яркости ниже 13 из 255 для 8-битного пространства sRGB или 0,0015 из 1,0 максимум для выходных значений линейного шейдера RGB. Если полностью иммерсивное приложение использует большое количество темных диапазонов, рекомендуется создавать контент в максимально возможном диапазоне яркости.

Захват изображений

Изображения и видео, записанные с помощью встроенного приложения камеры гарнитуры, создаются в цветовом пространстве sRGB для удобства обмена; контент с широким цветовым охватом будет обрезан. Другие прямоугольные зеркальные выходы, такие как прямой вид в Центре разработки Meta Quest, также создаются в формате sRGB.
Захват с использованием необработанного вывода дисплея (например, через scrcpy или adb shell screencap) использует те же настройки цвета, что применяются для вывода гарнитуры. Однако зеркальные выходы после искажения могут не обеспечивать точной цветопередачи при внешнем просмотре, так как захваченные изображения фактически используют родное цветовое пространство дисплея и модуля оптики.

Рекомендации

РЕКОМЕНДУЕТСЯ использовать управление цветом при разработке объектов.
РЕКОМЕНДУЕТСЯ работать с правильно откалиброванным монитором при работе с цветами.
РЕКОМЕНДУЕТСЯ указывать в иммерсивных приложениях то же цветовое пространство, которое использовалось для разработки объектов. Конвейеры рендеринга и текстуры в OpenXR не имеют встроенного цветового пространства. Разработчик обязан следить за тем, чтобы цветовые настройки входных данных, обработки и вывода согласовывались. Используйте расширение OpenXR XR_FB_color_space, чтобы задать цветовое пространство, применяемое для вывода приложения.
НЕ РЕКОМЕНДУЕТСЯ переинтерпретировать контент sRGB как P3. Явно задавайте корректное цветовое пространство.
РЕКОМЕНДУЕТСЯ правильно отображать контент в sRGB.
НЕ РЕКОМЕНДУЕТСЯ неправильно отображать (переинтерпретировать) контент sRGB как значения Display P3. Это приводит к перенасыщению цветов и потере деталей из-за обрезки.
РЕКОМЕНДУЕТСЯ проверить, что контент с широким цветовым охватом корректно обрезается для цветового пространства sRGB без потери деталей.
НЕ РЕКОМЕНДУЕТСЯ использовать встроенное приложение камеры или функции захвата изображения в Центре разработки Meta Quest для корректного воспроизведения цветов в видео и на скриншотах sRGB вашего приложения.
РЕКОМЕНДУЕТСЯ учитывать различия между линейными цветовыми значениями (используемыми для расчетов PBR-освещения), закодированными значениями sRGB (оптимизированными для хранения текстур в 8-битных изображениях) и цветовым пространством sRGB (координаты хроматичности RGB и точки белого D65).
НЕ РЕКОМЕНДУЕТСЯ использовать зеркальные методы захвата для записи видео и создания скриншотов не для разработки.

Дальнейшие действия

Проектирование приложений

Изучите дополнительные рекомендации по проектированию и узнайте, как создавать качественные и комфортные приложения:
  • Художественные объекты — узнайте, какие художественные объекты стоит рассмотреть для использования в приложении.
  • Анализ сцен — используйте физическое окружение в качестве холста с помощью функции анализа сцен.
  • Сквозная камера — смешивайте виртуальные объекты с физическим окружением с помощью сквозной камеры.
  • Пространственные привязки — закрепление виртуальных объектов в физической среде и обеспечение совместного использования приложений.
  • охрана здоровья и безопасность — узнайте, как разрабатывать безопасные приложения смешанной реальности.

Разработка приложений

Техническую информацию см. в следующих рекомендациях по разработке:

Meta Spatial SDK

Unity

Unreal

Логотип навигации
Русский
© 2026 Meta