This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Полезные советы
Программирование на C#
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров узла
Setting Up Materials
Setting Up Properties
Освещение
Landscape Tool
Sandworm (Experimental)
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Встроенные объекты
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Objects
Sound Objects
Pathfinding Objects
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
UnigineScript
C++
C#
Унифицированный язык шейдеров UUSL
File Formats
Rebuilding the Engine Tools
GUI
Двойная точность координат
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Оптимизация воды

Global Water - еще один объект, который существенно влияет на производительность. Несмотря на то, что он оптимизирован таким образом, что графический процессор не перегружается, для него все же может потребоваться дополнительная оптимизация.

Примечание
Рекомендуется использовать в сцене только 1 глобальный водный объект (ObjectWaterGlobal), поскольку он использует сетку проекции экранного пространства для поверхности воды.

Настройка тесселяции воды#

Движок выполняет четырехкратную тесселяцию водной поверхности. Тем не менее, не вся поверхность воды тесселирована: только внутренняя часть воды, которая всегда находится под камерой. Правильно настроенная тесселяция позволяет повысить производительность.

Материал water_global_base предоставляет параметры, позволяющие настроить тесселяцию воды .

Чтобы указать размер водной сетки под камерой, которая должна быть тесселирована, используйте параметр Tessellation Distance. Его можно найти на вкладке Parameters редактора материалов. Увеличение расстояния тесселяции приводит к снижению производительности, поэтому постарайтесь найти правильное значение.

Также есть параметр Max Tessellation Factor, который позволяет указать максимальное разбиение каждого патча тесселяции. Чем выше значение, тем больше будет визуализированных полигонов и, следовательно, тем ниже производительность.

Max Tessellation Factor используется вместе с параметром Tessellation Exponent, который определяет скорость уменьшения коэффициента тесселяции: то есть, насколько быстро тесселяция будет исчезать от центральной точки внутренней воды к внешней. Увеличение этого значения также позволяет повысить производительность.

Оптимизация плоских отражений#

water_global_base позволяет использовать плоские отражения от поверхности воды.

Примечание
Рекомендуется использовать плоские отражения от невозмущенной воды (0–2 балла по шкале Бофорта).

Однако плоские отражения с высоким разрешением могут значительно снизить производительность. Итак, вы можете попробовать уменьшить размер карты планарного отражения: на вкладке States Редактора материалов укажите соответствующее значение для параметра Map Size.

Однако помните, что отражения с низким разрешением редко обеспечивают ожидаемый визуальный результат.

Вы также можете использовать маску отражения для управления визуализацией плоских отражений в окне просмотра камеры. Например, вы можете визуализировать только определенные плоские отражения , а остальные заменить на отражения экранного пространства .

Оптимизация отражений в экранном пространстве#

Для водного объекта на больших расстояниях можно визуализировать отражения в экранном пространстве вместо плоских отражений . Это улучшает производительность, поскольку такие отражения не зависят от сложности отраженной геометрии.

Вы можете включить эффект SSR для водного объекта одним из следующих способов:

  • В строке меню выберите Rendering -> Water -> SSR.
  • В строке меню выберите Windows -> Settings и перейдите в раздел Water. Здесь вы можете включить параметр SSR Enabled .

В окне Настройки вы также можете указать дополнительные настройки для SSR: установить качество отражений и включить / отключить повышенную точность .

Настройки SSR для воды

Однако помните, что эти настройки влияют на производительность следующим образом:

  • Чем выше качество отражений, тем ниже производительность.
  • Включение повышенной точности снижает производительность. Однако уменьшаются и некоторые визуальные артефакты.

Рендеринг источников света на воде#

Вы можете отключить рендеринг всех источников света определенного типа на поверхности воды для повышения производительности.

Примечание
Чтобы включить / выключить рендеринг определенного источника света на воде, выберите его в Иерархии мира, перейдите на вкладку для конкретного типа окна Parameters и установите / снимите флажок с параметра Render Water.
  • 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#

Отрисовку подводных валов можно отключить, если камера никогда не попадает под воду.

Последнее обновление: 24.11.2020
Build: ()