Skip to content

Scalers Reference

Web Adaptive Performance включает набор специализированных скейлеров (модулей оптимизации). Индексатор автоматически выбирает, какой скейлер задействовать, опираясь на его Visual Impact и текущий тип Bottleneck (Target: CPU или GPU).

Матрица совместимости

Ниже представлена матрица совместимости и описание всех доступных модулей.

СкейлерПайплайнTargetОписание
ResolutionBiRP URPGPUСнижает разрешение рендера, радикально уменьшая нагрузку на GPU Fillrate. Подробности см. ниже.
Shadows QualityBiRP URPGPUПоэтапно отключает тени.
В URP сначала отключает мягкие тени, затем тени от доп. источников, затем основные.
В BiRP переключает тени в режим Hard Only, а затем отключает их полностью.
Shadow CascadesBiRP URPCPU/GPUУменьшает количество каскадов теней. Снижает количество Draw Calls процессора и нагрузку на видеокарту.
Shadow DistanceBiRP URPGPUСокращает дистанцию отрисовки теней.
Shadow ResolutionBiRP URPGPUСнижает разрешение теневых карт (Shadow Maps).
Anti AliasingBiRP URPGPUУменьшает качество сглаживания (MSAA) вплоть до полного отключения.
LOD BiasBiRP URPGPUЗаставляет Unity переключаться на низкополигональные LOD-модели на меньшей дистанции от камеры.
Camera ClipBiRP URPGPUСокращает параметр Far Clip Plane у целевых камер, убирая из рендера дальние объекты.
Layer CullingBiRP URPCPUПропорционально уменьшает дистанцию отсечения (Culling Distance) для конкретных слоев объектов.
Physics StepBiRP URPCPUСнижает частоту расчетов физики. Спасает производительность при тяжелой физике в браузере.
LUTURP OnlyGPUСнижает размер таблиц Color Grading (LUT) до минимального размера.
Mesh LOD ThresholdUnity 6+GPUИзменяет параметр meshLodThreshold, представленный в Unity 6.2, для агрессивного переключения LOD-ов.

Осторожно с Physics Step Scaler

Скейлер физики напрямую изменяет параметр Time.fixedDeltaTime. Если контроллер персонажа или игровая механика жестко завязаны на фиксированные кадры физики без интерполяции (Interpolation), движение объектов может стать прерывистым на низких уровнях качества.

Сброс настроек скейлера

Если вы экспериментировали с параметрами скейлера (например, меняли Min Bound или Max Level) и хотите вернуть их к значениям по умолчанию, просто выключите и снова включите его тумблер в окне Project Settings. Плагин автоматически пересоздаст модуль с базовыми настройками.

Разбор: Resolution Scaler

Это самый мощный инструмент плагина, дающий наибольший прирост FPS. Его работа кардинально отличается в зависимости от используемого пайплайна.

В режиме URP (Universal Render Pipeline)

В URP масштабирование работает максимально прозрачно. Плагин обращается напрямую к свойству renderScale внутри UniversalRenderPipelineAsset. Интерфейс (UI) при этом остается четким автоматически, так как URP умеет рендерить Canvas поверх смасштабированного 3D-мира.

В режиме BiRP (Built-in Render Pipeline)

Исторически в BiRP нет встроенной настройки Render Scale, которая бы работала в WebGL без поломки интерфейса или крашей (FBO Feedback Loop). WebAP решает эту проблему, предлагая две эксклюзивные стратегии на выбор.

Режим 1: NativeBrowserScaling

Плагин масштабирует HTML-элемент <canvas> напрямую через Native Loop Spoofing (инъекция в параметры devicePixelRatio браузера).

  • Плюсы: Максимальная производительность, нулевой overhead (затраты) на стороне видеокарты.
  • Минусы: Интерфейс игры размывается вместе с 3D-графикой. Режим работает только в собранном WebGL билде (в редакторе Unity изменений не будет).

Режим 2: RenderTextureScaling

Плагин перенаправляет рендер целевых камер в сжатую общую текстуру и использует скрытую Compositor Camera для вывода изображения.

  • Плюсы: 3D мир масштабируется, а UI (текст, кнопки) остается кристально четким.
  • Минусы: Добавляет незначительную нагрузку на GPU из-за операции Blit (копирование текстуры на экран).

Исправление кликов мыши (Raycasts)

При использовании RenderTextureScaling виртуальные координаты экрана сжимаются. Чтобы клики мышкой по 3D-объектам продолжали работать корректно, плагин автоматически заменяет базовые PhysicsRaycaster и Physics2DRaycaster на целевых камерах на кастомные WebScaledPhysicsRaycaster. Точность попадания лучей сохраняется идеальной при любом масштабе.

Как сохранить четкость UI? (Для режима BiRP RenderTextureScaling)

Чтобы интерфейс оставался четким при масштабировании 3D-графики в BiRP при RenderTextureScaling, необходимо правильно настроить ваш Canvas. Выберите один из двух вариантов:

Вариант 1: Screen Space - Overlay (Рекомендуемый)

Самый простой и надежный метод. Плагин сделает всю работу автоматически.

  1. Выберите ваш Canvas в иерархии сцены.
  2. В компоненте Canvas установите Render Mode на Screen Space - Overlay.
    Результат: Unity отрисует интерфейс поверх сжатого 3D-мира в 100% нативном разрешении.

Вариант 2: Screen Space - Camera (Для сложных слоев)

Используется, если вам необходимо смешивать 3D-модели, партиклы и UI. Вам потребуется разделить рендер на две камеры.

  1. Главная камера (3D): Убедитесь, что ее тег указан в настройках Target Tags скейлера. В поле Culling Mask снимите галочку со слоя UI. Установите Depth равным 0.
  2. UI Камера (Новая): Создайте новую камеру для отрисовки интерфейса. Не добавляйте ее тег в настройки скейлера.
    • Установите Clear Flags в Depth Only (чтобы камера не затирала 3D-фон).
    • Установите Culling Mask только на слой UI.
    • Установите Depth равным 1 (выше, чем у главной камеры).
  3. Настройка Canvas: Установите Render Mode на Screen Space - Camera и перетащите вашу новую UI Камеру в слот Render Camera.