Настройки Quality для WebGL и VR
SaluteJazz XR работает на двух платформах: WebGL и VR (Android). Для обеспечения оптимальной производительности и визуального качества на каждой из платформ настройте параметры Quality в Unity.
Важно помнить, что проект может запускаться на интегрированных видеокартах Intel, а в случае с VR — на мобильном процессоре Qualcomm XR2. Это требует особого внимания к оптимизации настроек, чтобы обеспечить стабильную работу на всех устройствах.
Нижеперечисленные рекомендации помогут оптимизировать проекты для платформ WebGL и VR. Финальная настройка должна учитывать стилистику проекта, его сложность для рендеринга, необходимость поддержки VR и другие требования.
Ключевые цели рекомендаций:
- Обеспечить стабильный FPS на интегрированных в идеокартах Intel.
- Достичь 90 FPS в VR (Qualcomm XR2).
- Основные усилия по оптимизации должны быть направлены на улучшение качества сглаживания (антиалиасинга), так как эффект «лесенок» наиболее заметен и раздражает в восприятии 3D-графики.
Ключевые параметры меню Quality
Параметры находятся в списке в меню Quality:
- Перейдите Edit > Project Settings.
- Перейдите в меню Quality.
Рекомендации по использованию основных параметров:
- Realtime Reflection Probes. Используется только в том случае, если в сцене осознанно применяются отражения в реальном времени при помощи Reflection probes. Во всех иных случая должно быть выключено.
- VSync Count. Рекомендуется выбрать Don’t Sync для повышения производительности. Однако в некоторых проектах это может вызывать появление горизонтальной полосы при быстром движении камеры, если FPS недостаточно высок.
- Texture Quality > Full Res. Не стоит пытаться поднять производительность за счет размера текстур — это не даст FPS и приведет к снижению качества текстур, они станут размытыми. Применяйте осознанно, понимая, что текстурная память системы, на которой будет запущен проект сильно ограничена.
- Anisotropic Textures. Чтобы текстуры пола и стен не сливались, иногда требуется повысить значение Аnisotropic. Делать это стоит осознанно, для минимального количества текстур. Выставите параметр на Per Texture, чтобы учитывать только те текстуры, в которые внесены изменения. Если таких текстуры не используются, то имеет смысл отключить Disabled.
- Particle Raycast Budget. Для WebGL лучше установить значение 256 и 64 для VR, чтобы избежать просадки FPS при большом количестве частиц на экране. Учитывайте, что может быть влияние на визуальное отображение партиклов в ваших FX. В таком случае, стоит подумать над оптимизацией самих FX.
- Skin Weight. Поскольку наши аватары используют максимум 3 кости на 1 вершину, значение должно быть 4.
Остальные значения в меню Quality выставленные по умолчанию подходят для работы и менять их не следует.
Меню настроек Quality и его компоненты
Основные настройки качества находятся в меню Quality:
- Перейдите Edit > Project Settings.
- Перейдите в меню Quality. В этом меню есть ссылка на пресеты качества. Их может быть несколько для разных платформ или разных системных требований. Файлы этих пресетов качества рендера обычно хранятся в следующих системных файлах Unity:
- …\Assets\SettingsUniversal Render Pipeline Asset.asset;
- …\Assets\SettingsUniversal Render Pipeline Asset_Renderer.asset.
- Путь до файлов: выберите из списка элемент Render Pipeline Asset. Справа от него есть поле. В поле дважды нажмите на Universal Render Pipeline Asset — это первый файл. Справа откроется окно Inspector. Внутри этого окна откройте раздел Rendering, затем Render List > Render Pipeline Asset_Renderer — это второй файл.
Каждая настройка в меню Quality привязана к Quality level (находится в самой верхней части меню Quality). При изменении Quality level будут применены новые настройки. Важно работать и настраивать внутри одного Quality level.
Настройки Render Pipeline Asset
Настройка Render Pipeline Asset ведет к файлу …\Assets\SettingsUniversal Render Pipeline Asset.asset. В файле хранятся настройки качества рендера, такие, как Post Effects, Antialiasing, Shadow Cascades и т.д. Эти настройки не имеют универсальных показателей, их нужно подбирать индивидуально для проекта, ориентируясь на итоговый визуальный внешний вид.
- Depth Texture. Отключите, если не используете сложные шейдеры (например, туман или объемные облака с отрисовкой, используя Depth камеры в шейдере).
- HDR. Отключите для ускорения отрисовки.
- AntiAliasing. Самый сложный в выборе параметр, так как радикально влияет на потерю FPS. Обычно x2 вполне достаточно, но если в сцене много сеток, мелких деталей, текста в текстурах, то может понадобится увеличить до x4. x8 — дает слегка размытый результат, практика показала, что он бесполезен.
- RenderScale. Дает возможность визуализировать сцену в большем разрешении, чем может показать монитор, а потом сжать, чтобы избавится от «лесенок». Это один из самых негативно влияющих на FPS параметров. Старайтесь держать его в районе 1,1—1,2. Если «лесенки» все еще видны, можно выставить показатели больше, если при этом мощность конечной системы позволяет получить хороший FPS. В настройках для VR никогда не используйте более 1,2 — это сильно снижает FPS.
- Cast Shadows. Включите только при использовании рилтайм-теней, что крайне ресурсоемко. Используйте значения более 2048, только если это принципиально для сцены. Для VR - Disabled. Не используйте тени в рилтайме в VR — это критично снижает FPS.
- Additional Lights. Shadows. Используйте Disabled. Использовать несколько источников теней в проекте недопустимо.
- Cascade Count. Если используются рилтайм-тени, настройте 3—4 каскада в зависимости от расстояния до объектов. Универсальных рекомендаций по настройке нет — все зависит от масштаба сцены, количества объектов, возможности подойти к ним и т.д. Параметр настраивается исключительно на основе собственного представлении о «правильности» теней для конкретной сцены.
Остальные значения Render Pipeline Asset выставленные по умолчанию подходят для работы и менять их не следует.
Настройки Rendering из Render List
Настройка Render Pipeline Asset_Renderer ведет к файлу …\Assets\SettingsUniversal Render Pipeline Asset_Renderer.asset.
Все параметры по умолчанию в этом меню хорошо подходят любому проекту, кроме Post-processing. Обязательно выключите для VR. Для WebGL — если Post-processing используется (что делать не рекомендуется), то можно оставить, если нет — то выключите. Это важно потому, что в Unity по умолчанию включен эффект FSAO, который негативно влияет на FPS. Отключив Post-processing, вы гарантированно отключите случайные и установленные по умолчанию Post-FX.
Настройки Project Settings/Player
Для настройки:
- Перейдите в Edit > Project Settings.
- Перейдите в раздел Player > Other Settings.
Значения качества в Other Settings выставленные по умолчанию подходят для работы и менять их не следует, кроме Color Space:
- WebGL-платформа: проекты SaluteJazz XR используют Color Space Gamma.
- VR-платформа: при запуске на Oculus необходимо выбрать Color Space в Linear. Это влияет на цветопередачу, но является обязательным требованием для Oculus. Шлемы PICO поддерживают Gamma.