Оптимизация динамических отражений
Динамические отражения в сцене могут значительно снизить производительность, если они не настроены должным образом. Например, плоское отражение удваивает количество полигонов, поскольку по умолчанию учитывает всю геометрию сцены. Это может вызвать проблемы с производительностью в больших и тяжелых сценах.
В качестве альтернативы вы можете попытаться сделать количество отражений как можно меньшим. Однако есть способ оптимизировать использование динамических отражений без визуальных потерь.
Количество полигонов в отражениях для каждой поверхности можно проверить на вкладке Surfaces инструмента Content Profiler.
Использование масок отражения#
Reflection mask позволяет контролировать рендеринг динамических отражений во вьюпорте камеры отражения . Эту маску можно установить для динамических Environment Probes и плоских отражений .
Оптимизация плоских отражений#
Чтобы оптимизировать сцену с помощью плоских отражений , вы можете применить следующий подход: настроить сцену так, чтобы визуализировались только требуемые плоские отражения, и использовать менее затратный Screen Space Reflections (SSR) для других отражений. Пример рабочего процесса выглядит следующим образом:
- Решите, какой бит маски области просмотра будет отвечать за отражение объекта.
- Откройте окно настроек камеры и включите выбранный бит в маске Reflection Viewport камеры.
- В иерархии материалов выберите отражающий материал и включите тот же бит в Planar Reflection Viewport Mask на вкладке Parameters в редакторе материалов.
- В Иерархии мира выберите узел для отражения и перейдите на вкладку Node окна Parameters.
- В разделе Surfaces включите выбранный бит в Viewport Mask для всех поверхностей, которые должны быть отражены.
Вы можете создать специальную низкополигональную LOD-поверхность, которая будет использоваться только для отражений; маска области просмотра такого LOD не должна совпадать с маской области просмотра камеры, чтобы исключить ее из рендеринга.
- В иерархии материалов выберите материал узла, который должен быть отражен, и включите выбранный бит в поле Viewport Mask на вкладке Common редактора материалов.
На рисунке ниже маска области просмотра отражения плоскости имеет тот же бит (или биты) совпадения с маской окна просмотра отражения камеры и масками области просмотра красного материального шара и его материала. Маски области просмотра других материальных шаров не имеют совпадающего бита с маской области просмотра камеры отражения и / или с маской области просмотра плоского отражения и, следовательно, они не отражаются:
Маскированное плоское отражение - включитьScreen Space Reflectionsдля создания отражений других узлов в сцене: в строке меню включите параметр Rendering -> Features -> SSR.
Эффект SSR также должен быть включен для отражающего материала: перейдите в раздел Post Processing на вкладке States и проверьте, включена ли опция SSR.Маскированное плоское отражение + SSR
Оптимизация отражений Environment Probe#
Динамические отражения, предоставляемые Environment Probes, можно оптимизировать таким же образом, как описано выше. Чтобы указать маску Reflection Viewport для Environment Probe, перейдите в раздел Environment Probe окна Parameters и установите параметр Reflection Viewport Mask в разделе Baking Settings.
На левом рисунке ниже маска области просмотра отражения Environment Probe совпадает с маской Reflection Viewport камеры и масками Viewport красного материального шара и его материала. На правом рисунке маска Reflection Viewport для Environment Probe не соответствует маске Reflection Viewport камеры:
Настройка дистанции отражения#
Еще один метод, позволяющий оптимизировать рендеринг динамических отражений, - установить расстояние, на котором отражения будут отключены:
Источники Environment Probe#
Этот метод подходит только для динамических отражений, предоставляемых Environment Probes.
- В строке меню выберите Windows -> Settings и перейдите в раздел Visibility Distances открывшегося окна настроек.
- Для параметра Dynamic Reflections укажите расстояние от камеры, начиная с которого отражения не отображаются.
Плоские отражения#
Чтобы оптимизировать источник Planar Reflection Probe, вы можете попробовать настроить следующие параметры его материала:
- Расстояния Visibility Distance и Fade Distance, чтобы вообще не отображать отражающую поверхность, когда камера находится далеко от нее.
- Reflection Distance чтобы избежать отображения невидимых отражений, когда камера находится далеко от отражающей поверхности.
- Distance Scale для применения менее детализированных LOD к отражениям на более близком расстоянии, чем к соответствующим отраженным объектам.
- ZFar для ограничения усеченного угла обзора, который используется для захвата отражений, чтобы избежать отображения отражений ненужных удаленных объектов.