Оптимизация воды
Global Water - еще один объект, который существенно влияет на производительность. Несмотря на то, что он оптимизирован таким образом, что графический процессор не перегружается, для него все же может потребоваться дополнительная оптимизация.
Настройка тесселяции воды#
Движок выполняет четырехкратную тесселяцию водной поверхности. Тем не менее, не вся поверхность воды тесселирована: только внутренняя часть воды, которая всегда находится под камерой. Правильно настроенная тесселяция позволяет повысить производительность.
Материал water_global_base предоставляет параметры, позволяющие настроить тесселяцию воды .
Чтобы указать размер водной сетки под камерой, которая должна быть тесселирована, используйте параметр Tessellation Distance. Его можно найти на вкладке Parameters редактора материалов. Увеличение расстояния тесселяции приводит к снижению производительности, поэтому постарайтесь найти правильное значение.
Также есть параметр Max Tessellation Factor, который позволяет указать максимальное разбиение каждого патча тесселяции. Чем выше значение, тем больше будет визуализированных полигонов и, следовательно, тем ниже производительность.
Max Tessellation Factor используется вместе с параметром Tessellation Exponent, который определяет скорость уменьшения коэффициента тесселяции: то есть, насколько быстро тесселяция будет исчезать от центральной точки внутренней воды к внешней. Увеличение этого значения также позволяет повысить производительность.
Оптимизация плоских отражений#
water_global_base позволяет использовать плоские отражения от поверхности воды.
Однако плоские отражения с высоким разрешением могут значительно снизить производительность. Итак, вы можете попробовать уменьшить размер карты планарного отражения: на вкладке States Редактора материалов укажите соответствующее значение для параметра Map Size.
Однако помните, что отражения с низким разрешением редко обеспечивают ожидаемый визуальный результат.
Вы также можете использовать маску отражения для управления визуализацией плоских отражений в окне просмотра камеры. Например, вы можете визуализировать только определенные плоские отражения , а остальные заменить на отражения экранного пространства .
Оптимизация отражений в экранном пространстве#
Для водного объекта на больших расстояниях можно визуализировать отражения в экранном пространстве вместо плоских отражений . Это улучшает производительность, поскольку такие отражения не зависят от сложности отраженной геометрии.
Вы можете включить эффект SSR для водного объекта одним из следующих способов:
- В строке меню выберите Rendering -> Water -> SSR.
- В строке меню выберите Windows -> Settings и перейдите в раздел Water. Здесь вы можете включить параметр SSR Enabled .
В окне Настройки вы также можете указать дополнительные настройки для SSR: установить качество отражений и включить / отключить повышенную точность .
Однако помните, что эти настройки влияют на производительность следующим образом:
- Чем выше качество отражений, тем ниже производительность.
- Включение повышенной точности снижает производительность. Однако уменьшаются и некоторые визуальные артефакты.
Рендеринг источников света на воде#
Вы можете отключить рендеринг всех источников света определенного типа на поверхности воды для повышения производительности.
- Render Environment Probes включает / выключает рендеринг всех Environment Probes на поверхности воды.
- Render Voxel Probes включает / выключает рендеринг всех Voxel Probes на поверхности воды.
- Render Lights включает / выключает рендеринг всех всенаправленных (Omni) и проецируемых (Proj) источников света на поверхности воды.
Оптимизация объектов поля#
Если взаимодействие воды с объектами FieldHeight и / или FieldShoreline включено в глобальном водном материале , вы можете повлиять на производительность, установив разрешение текстур Field Height и Field Shoreline в окне Settings: чем выше разрешение, тем ниже производительность.
Другой параметр, связанный с полями, - Field Precision 32 bits. Это позволяет снизить точность текстур, используемых для объектов поля, следовательно, повысить производительность.
Настройка отрисовки береговой линии#
Участки береговой линии, созданные с помощью объекта FieldShoreline, могут ухудшить характеристики воды при неправильной настройке. Материал water_global_base обеспечивает несколько состояний береговой линии, которые могут помочь улучшить производительность.
Состояния Normal и Geometry влияют на рендеринг волновой геометрии волн береговой линии. Отключите их, когда волны едва заметны (например, если береговая линия видна только сверху). В некоторых случаях достаточно использовать только состояние Geometry для имитации искажения водной поверхности.
Если оба состояния отключены, отключите также состояние High Precision, которое позволяет улучшить интерполяцию между соседними пикселями текстуры береговой линии. Это состояние уменьшает ступенчатые артефакты, которые заметны на ватерлинии, разделяющей над водой и под водой. Однако, если рендеринг волновой геометрии для волн береговой линии отключен, в таких дополнительных расчетах нет необходимости.
Как было замечено выше, рендеринг геометрии волн обычно отключается при наблюдении за водной поверхностью сверху. Следовательно, вы можете отключить состояние Caustic Distortion, сглаживающее каустику. Он получит производительность без визуальных потерь.
Еще одно состояние, которое также влияет на производительность, - Foam. Позволяет наносить пену для прибрежных зон. Если имитация пены не требуется, отключите состояние, чтобы увеличить производительность.
Таким образом, вы можете моделировать участки береговой линии, просматриваемые с плоскости, просто включив эффект пены, отключив геометрию, каустику и улучшенную интерполяцию, поскольку они практически незаметны при значительном увеличении производительности.
Как видите, визуальной разницы между береговой линией на фотографиях выше почти нет.
Другие оптимизации водопользования#
Настройка состояний материала воды#
Материал water_global_base обеспечивает несколько состояний, которые также могут влиять на характеристики воды:
- Choppy Waves создает волны с острыми гребнями. Волны выглядят более реалистично, однако вы можете отключить это состояние, если за водой наблюдаете с большого расстояния.
- Underwater DOF обеспечивает эффект глубины резкости для соединения под водой и над водой. Его также можно отключить, если камера не попадает под воду.
- Caustics включает рендеринг световых лучей, преломленных водной поверхностью. Его можно отключить, если эффект не требуется.
- Caustics Distortion сглаживает каустику. Доступно, только если для воды включен Caustics. Если сглаживание не требуется, состояние можно отключить для повышения производительности.
Состояния доступны на вкладке States редактора материалов.
Регулировка настроек рендеринга воды#
Также есть набор настроек рендеринга воды, которые также могут снизить производительность. Их можно найти в разделе Water окна Settings.
Качество анизотропии#
Параметр Anisotropy Quality определяет уровень анизотропии (степень анизотропной фильтрации) текстур воды. Повышение качества обеспечивает лучшую детализацию текстур на расстоянии, однако оказывает большое влияние на производительность. Итак, найдите наиболее подходящее значение для сохранения баланса визуального качества и производительности.
Refraction Quality#
Параметр Refraction Quality определяет качество преломления воды: чем выше качество, тем ниже производительность.
Shoreline Wetness#
Эффект влажности, включенный для объектов у береговой линии, также может повлиять на производительность. Попробуйте отключить его, если возможно, чтобы улучшить производительность рендеринга воды.
Underwater Shafts#
Отрисовку подводных валов можно отключить, если камера никогда не попадает под воду.