Видеоуроки
Interface
Essentials
Advanced
Полезные советы
Принципы работы
Properties
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Освещение
Landscape Tool
Sandworm (Experimental)
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Программирование
Основы
Настройка среды разработки
Примеры использования
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

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

A Global Water is another object that significantly affects the performance. Despite it is optimized so that the GPU is not overloaded, it still may require some additional optimizations. Global Water - еще один объект, который существенно влияет на производительность. Несмотря на то, что он оптимизирован таким образом, что графический процессор не перегружается, для него все же может потребоваться дополнительная оптимизация.

Примечание
It is recommended to use only 1 global water object (ObjectWaterGlobal) in the scene, as it uses the screen space projected grid for the water surface. Рекомендуется использовать в сцене только 1 глобальный водный объект (ObjectWaterGlobal), поскольку он использует сетку проекции экранного пространства для поверхности воды.

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

The Engine performs quad tessellation of the water surface. However, not the whole water surface is tessellated: only the inner part of the water that is always under the camera is. Tessellation that is set up properly allows you to increase the performance. Движок выполняет четырехкратную тесселяцию водной поверхности. Тем не менее, не вся поверхность воды тесселирована: только внутренняя часть воды, которая всегда находится под камерой. Правильно настроенная тесселяция позволяет повысить производительность.

The water_global_base material provides the parameters that allow setting up water tessellation. Материал water_global_base предоставляет параметры, позволяющие настроить тесселяцию воды .

To specify the size of the water grid under the camera that should be tessellated, use the Tessellation Distance parameter. It can be found in the Parameters tab of the Materials Editor. Increasing the tessellation distance leads to decreasing the performance, so try to find the proper value. Чтобы указать размер водной сетки под камерой, которая должна быть тесселирована, используйте параметр Tessellation Distance. Его можно найти на вкладке Parameters редактора материалов. Увеличение расстояния тесселяции приводит к снижению производительности, поэтому постарайтесь найти правильное значение.

There is also the Max Tessellation Factor parameter that allows specifying maximum subdivision of each tessellation patch. The higher the value, the more the number of rendered polygons, and, therefore, the lower the performance is. Также есть параметр Max Tessellation Factor, который позволяет указать максимальное разбиение каждого патча тесселяции. Чем выше значение, тем больше будет визуализированных полигонов и, следовательно, тем ниже производительность.

The Max Tessellation Factor is used together with the Tessellation Exponent parameter that specifies the rate of decrementing the tessellation factor: i.e. how fast the tessellation will fades from the center point of inner water to outer. Increasing this value allows you to improve the performance as well. Max Tessellation Factor используется вместе с параметром Tessellation Exponent, который определяет скорость уменьшения коэффициента тесселяции: то есть, насколько быстро тесселяция будет исчезать от центральной точки внутренней воды к внешней. Увеличение этого значения также позволяет повысить производительность.

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

The water_global_base allows you to use planar reflections on the water surface. water_global_base позволяет использовать плоские отражения от поверхности воды.

Примечание
It is recommended to use planar reflections on undisturbed water (0-2 Beaufort). Рекомендуется использовать плоские отражения от невозмущенной воды (0–2 балла по шкале Бофорта).

However, planar reflections of a high resolution may significantly reduce the performance. So, you can try to lower the size of the planar reflection map: in the States tab of the Materials Editor, specify the appropriate value for the Map Size parameter. Однако плоские отражения с высоким разрешением могут значительно снизить производительность. Итак, вы можете попробовать уменьшить размер карты планарного отражения: на вкладке States Редактора материалов укажите соответствующее значение для параметра Map Size.

However, remember that reflections of a low resolution rarely provide the expected visual result. Однако помните, что отражения с низким разрешением редко обеспечивают ожидаемый визуальный результат.

You can also use reflection mask to control rendering of the planar reflections into the camera viewport. For example, you can render only certain planar reflections, and the other ones replace with screen space reflections. Вы также можете использовать маску отражения для управления визуализацией плоских отражений в окне просмотра камеры. Например, вы можете визуализировать только определенные плоские отражения , а остальные заменить на отражения экранного пространства .

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

For the water object, the screen space reflections can be rendered instead of the planar reflections at large distances. It improves the performance, as such reflections don't depend on complexity of the reflected geometry. Для водного объекта на больших расстояниях можно визуализировать отражения в экранном пространстве вместо плоских отражений . Это улучшает производительность, поскольку такие отражения не зависят от сложности отраженной геометрии.

You can enable the SSR effect for the water object in one of the following ways: Вы можете включить эффект SSR для водного объекта одним из следующих способов:

  • In the Menu Bar, choose Rendering -> Water -> SSR. В строке меню выберите Rendering -> Water -> SSR.
  • In the Menu Bar, choose Windows -> Settings and then go to the Water section. Here you can toggle the SSR Enabled parameter on. В строке меню выберите Windows -> Settings и перейдите в раздел Water. Здесь вы можете включить параметр SSR Enabled .

In the Settings window, you can also specify the additional settings for SSR: set the quality of reflections and enable/disable increased accuracy. В окне Настройки вы также можете указать дополнительные настройки для SSR: установить качество отражений и включить / отключить повышенную точность .

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

However, remember that these settings affect the performance as follows: Однако помните, что эти настройки влияют на производительность следующим образом:

  • The higher the quality of the reflections, the lower the performance is. Чем выше качество отражений, тем ниже производительность.
  • Enabling the increased accuracy reduces the performance. However, some visual artifacts are reduced as well. Включение повышенной точности снижает производительность. Однако уменьшаются и некоторые визуальные артефакты.

Rendering Lights on WaterРендеринг источников света на воде#

You can disable rendering of the all light sources of the certain type on the water surface to increase the performance. Вы можете отключить рендеринг всех источников света определенного типа на поверхности воды для повышения производительности.

Примечание
To enable/disable rendering of a particular light source on the water, select it in the World Hierarchy, go to the type-specific tab of the Parameters window and check/uncheck the Render Water parameter. Чтобы включить / выключить рендеринг определенного источника света на воде, выберите его в Иерархии мира, перейдите на вкладку для конкретного типа окна Parameters и установите / снимите флажок с параметра Render Water.
  • Render Environment Probes toggles on/off rendering of all environment probes on the water surface.

    Render Environment Probes включает / выключает рендеринг всех Environment Probes на поверхности воды.

  • Render Voxel Probes toggles on/off rendering of all voxel probes on the water surface.

    Render Voxel Probes включает / выключает рендеринг всех Voxel Probes на поверхности воды.

  • Render Lights toggles on/off rendering of all omni and projected light sources on the water surface.

    Render Lights включает / выключает рендеринг всех всенаправленных (Omni) и проецируемых (Proj) источников света на поверхности воды.

Optimizing Field ObjectsОптимизация объектов поля#

If interaction of water with FieldHeight and/or FieldShoreline objects is enabled in the global water material, you can affect the performance by setting up the resolution of the Field Height and Field Shoreline textures in the Settings window: the higher the resolution, the lower the performance is. Если взаимодействие воды с объектами FieldHeight и / или FieldShoreline включено в глобальном водном материале , вы можете повлиять на производительность, установив разрешение текстур Field Height и Field Shoreline в окне Settings: чем выше разрешение, тем ниже производительность.

Another fields-related setting is Field Precision 32 bits. It allows reducing the precision of textures used for field objects, therefore, increasing the performance. Другой параметр, связанный с полями, - Field Precision 32 bits. Это позволяет снизить точность текстур, используемых для объектов поля, следовательно, повысить производительность.

Setting Up Shoreline RenderingНастройка отрисовки береговой линии#

The shoreline areas created with the FieldShoreline object may reduce the water performance if set up improperly. The water_global_base material provides several shoreline-related states that can help to gain the performance. Участки береговой линии, созданные с помощью объекта FieldShoreline, могут ухудшить характеристики воды при неправильной настройке. Материал water_global_base обеспечивает несколько состояний береговой линии, которые могут помочь улучшить производительность.

The Normal and Geometry states affect rendering of wave geometry of shoreline waves. Disable them, when the waves are hardly noticeable (e.g., if the shoreline is observed from above only). In some cases, using only the Geometry state is enough to simulate distortion of the water surface. Состояния Normal и Geometry влияют на рендеринг волновой геометрии волн береговой линии. Отключите их, когда волны едва заметны (например, если береговая линия видна только сверху). В некоторых случаях достаточно использовать только состояние Geometry для имитации искажения водной поверхности.

If both states are disabled, disable also the High Precision state that allows improving interpolation between the adjacent pixels of the shoreline texture. This state reduces stepping artifacts that are noticeable at the waterline separating overwater and underwater. However, if rendering of the wave geometry is disabled for the shoreline waves, there is no need in such additional calculations. Если оба состояния отключены, отключите также состояние High Precision, которое позволяет улучшить интерполяцию между соседними пикселями текстуры береговой линии. Это состояние уменьшает ступенчатые артефакты, которые заметны на ватерлинии, разделяющей над водой и под водой. Однако, если рендеринг волновой геометрии для волн береговой линии отключен, в таких дополнительных расчетах нет необходимости.

As it was noticed above, rendering of the waves geometry is usually disabled when the water surface is observed from above. Therefore, you can disable the Caustic Distortion state that smooths caustics. It will gain the performance without visual losses. Как было замечено выше, рендеринг геометрии волн обычно отключается при наблюдении за водной поверхностью сверху. Следовательно, вы можете отключить состояние Caustic Distortion, сглаживающее каустику. Он получит производительность без визуальных потерь.

Примечание
You can disable the caustic distortion in any other case, if necessary. При необходимости вы можете отключить каустическое искажение в любом другом случае.

Another state that also affects the performance is Foam. It enables foam rendering for shoreline zones. If the foam simulation isn't necessary, disable the state to increase the performance. Еще одно состояние, которое также влияет на производительность, - Foam. Позволяет наносить пену для прибрежных зон. Если имитация пены не требуется, отключите состояние, чтобы увеличить производительность.

Thus, you can simulate shoreline areas, viewed from a plane, by just enabling the foam effect while disabling geometry, caustics and improved interpolation as they are hardly noticeable with a significant increase of performance. Таким образом, вы можете моделировать участки береговой линии, просматриваемые с плоскости, просто включив эффект пены, отключив геометрию, каустику и улучшенную интерполяцию, поскольку они практически незаметны при значительном увеличении производительности.

As you can see, there is almost no visual difference between shorelines on the pictures above. Как видите, визуальной разницы между береговой линией на фотографиях выше почти нет.

Other Water OptimizationsДругие оптимизации водопользования#

Setting Up Water Material StatesНастройка состояний материала воды#

The water_global_base material provides several states that can also affect the water performance: Материал water_global_base обеспечивает несколько состояний, которые также могут влиять на характеристики воды:

  • Choppy Waves creates waves with sharp crests. The waves look more realistic, however, you can disable this state if the water is observed from the large distance. Choppy Waves создает волны с острыми гребнями. Волны выглядят более реалистично, однако вы можете отключить это состояние, если за водой наблюдаете с большого расстояния.
  • Underwater DOF provides the DOF effect for underwater and overwater splice. It can also be disabled, if the camera never gets under the water. Underwater DOF обеспечивает эффект глубины резкости для соединения под водой и над водой. Его также можно отключить, если камера не попадает под воду.
  • Caustics enables rendering of light rays refracted by the water surface. It can be disabled, if the effect isn't required. Caustics включает рендеринг световых лучей, преломленных водной поверхностью. Его можно отключить, если эффект не требуется.
  • Caustics Distortion smooths caustics. It is available only when the Caustics is enabled for the water. If smoothing isn't required, the state can be disabled to gain the performance. Caustics Distortion сглаживает каустику. Доступно, только если для воды включен Caustics. Если сглаживание не требуется, состояние можно отключить для повышения производительности.

The states are available in the States tab of the Materials Editor. Состояния доступны на вкладке States редактора материалов.

Adjusting Water Rendering SettingsРегулировка настроек рендеринга воды#

There is also a set of water rendering settings that may also reduce the performance. They can be found in the Water section of the Settings window. Также есть набор настроек рендеринга воды, которые также могут снизить производительность. Их можно найти в разделе Water окна Settings.

Anisotropy QualityКачество анизотропии#

The Anisotropy Quality parameter specifies the anisotropy level (degree of anisotropic filtering) of the water textures. Increasing the quality provides better texture detail over a distance, however, it has a great impact on the performance. So, find the most appropriate value to keep the balance of the visual quality and the performance. Параметр Anisotropy Quality определяет уровень анизотропии (степень анизотропной фильтрации) текстур воды. Повышение качества обеспечивает лучшую детализацию текстур на расстоянии, однако оказывает большое влияние на производительность. Итак, найдите наиболее подходящее значение для сохранения баланса визуального качества и производительности.

Refraction QualityRefraction Quality#

The Refraction Quality parameter specifies the quality of water refraction: the higher the quality, the lower the performance is. Параметр Refraction Quality определяет качество преломления воды: чем выше качество, тем ниже производительность.

Shoreline WetnessShoreline Wetness#

The wetness effect enabled for objects near the shoreline may also affect the performance. Try to disable it, if possible, to improve the performance of water rendering. Эффект влажности, включенный для объектов у береговой линии, также может повлиять на производительность. Попробуйте отключить его, если возможно, чтобы улучшить производительность рендеринга воды.

Underwater ShaftsUnderwater Shafts#

Rendering of the underwater shafts can be disabled if the camera never gets under the water. Отрисовку подводных валов можно отключить, если камера никогда не попадает под воду.

Последнее обновление: 10.10.2020