Unity 6.3
0 онлайн 85 гостей 3 в системе
Вход

Контроль разрешения в проектах XR

Узнайте, как управлять разрешением в вашем не связанном проекте XR.

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

Способ управления разрешением в вашем проекте XR зависит от конвейера рендеринга, используемого вашим проектом.

Справочная информация по управлению разрешением

В следующей таблице перечислены методы, которые можно использовать для масштабирования разрешения в вашем проекте XR, и с какими конвейерами отображения совместим каждый метод:

Метод Совместимость конвейера рендеринга
Разрешение управления с XRSettings.renderViewportScale URP
Изменение масштаба отображения в URP активе URP
Включить автоматическое динамическое разрешение URP
Система динамического разрешения HDRP
Изменить XRSettings.eyeTextureResolutionScale HDRP

Разрешение управления с URP

Если ваш проект использует универсальный конвейер рендеринга (URP), Unity рекомендует вам Управление разрешением с помощью XRSettings.renderViewportScale. Если ваш проект использует пост-обработку, вы можете использовать XRSettings.renderViewportScale с дополнительной настройкой, как описано в Используйте XRSettings.renderViewPortScale с включенной пост-обработкой.

Вы также можете Изменить масштаб рендеринга в URP активе, но это дорогостоящий метод.

Если ваш проект использует Unity 6.3 или более новую версию, и OpenXR 1.16 или более новую версию, вы можете Включить автоматическое динамическое разрешение viewport для автоматического изменения разрешения во время выполнения OpenXR.

Разрешение управления с XRSettings.renderViewportScale

URP отображает текстуру глаза непосредственно, когда не включены методы для последующей обработки, или когда включены методы HDR. Когда URP отображает текстуру глаза непосредственно, вы можете использовать XRSettings.renderViewportScale напрямую. XRSettings.renderViewportScale контролирует, какую часть выделенной текстуры глаза URP использует для отображения. Вы можете изменить это значение во время выполнения, чтобы динамически настроить разрешение отображения глаза.

Настройка renderViewPortScale может быть лучшим способом воспользоваться преимуществами динамического разрешения. Вы можете изменять масштаб окна каждого кадра без ущерба для производительности перераспределения текстур глаз.

Чтобы включить динамическое разрешение, вы можете использовать XRSettings.renderViewportScale для управления частью выделенной текстуры глаза, на которую отображается конвейер отображения. Например, если вы установите значение 0.5, то URP отобразит четверть текстуры (половину высоты и половину ширины). Затем устройство XR масштабирует эту область, чтобы заполнить окончательный дисплей. Вы можете изменить значение renderViewportScale во время выполнения, чтобы динамически настроить разрешение отображения глаза.

XRSettings.renderViewportScale совместим с с фиксированным рендерингом.

Примечание: XRSettings.renderViewportScale — это подсказка разработчика среде выполнения XR о желаемом масштабе области просмотра. Однако среда выполнения может как использовать это значение, так и проигнорировать его исходя из собственной логики и соображений производительности. Запросить XRSettings.appliedRenderViewportScale контролировать масштаб, используемый устройством, и принимать обоснованные решения о том, как его настроить XRSettings.renderViewportScale для последующих кадров.

Используйте XRSettings.renderViewPortScale с включенной последующей обработкой

Если вы включили методы последующей обработки в вашем проекте URP XR, URP отображает промежуточные текстуры, а не текстуру глаза.

Чтобы включить динамическое разрешение с промежуточными текстурами:

  1. Откройте Главная Camera в Inspector. В Выпусквключите URP Dynamic Resolution.
  2. Используйте XRSettings.renderViewportScale для настройки масштаба окончательной области окна просмотра, отправленного на устройство (последнее окно просмотра blit). URP внутренне использует ScalableBufferManager для масштабирования промежуточных текстур.

Примечание: Вы не можете использовать этот подход с фиксированным рендерингом, или если вы включили Временное Анти Плискание.

Изменение масштаба отображения в ассете URP

Измените масштаб рендеринга URP непосредственно в вашем URP ассете, чтобы масштабировать текстуру глаза напрямую. Уменьшение значения масштаба рендеринга URP может уменьшить разрешение. Этот метод является альтернативой XRSettings.eyeTextureResolutionScale, который не поддерживается в URP, но поддерживается в HDRP.

Важно: Изменение масштаба рендеринга перераспределяет текстуру глаза, что является дорогостоящей операцией. Вы не должны выполнять эту операцию каждый кадр.

Чтобы изменить масштаб отображения ресурса URP:

  1. Откройте свой ресурс URP в окне Inspector.
  2. Разверните раздел Качество.
  3. Устанавливает желаемое значение Масштаб отображения.

Вы также можете изменить это значение с UniversalRenderPipeline.asset.renderScale API.

Включить автоматическое динамическое разрешение (OpenXR)

В Unity, 6.3 и более поздних версиях с OpenXR, 1.16 и более поздними версиями можно использовать функцию Автоматическое динамическое разрешение окон для автоматического управления разрешением во время выполнения OpenXR. Дополнительные сведения см. в разделе Автоматическое динамическое разрешение окон (документация по пакету OpenXR).

Разрешение управления с HDRP

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

Примечание: XRSettings.renderViewportScale не поддерживается на HDRP.

Дополнительные ресурсы