Редактор воды

Редактор воды [water] является встроенным инструментом Редактора карт. Используется для создания на картах водоемов: озер, рек, моря.

Переключиться в Редактор воды можно двумя способами:

  • нажать на иконку water бокового меню Редактора Карт;

  • нажать клавишу 3 на клавиатуре.

Бассейны

Бассейн - один цельный меш поверхности воды. Примеры бассейнов:

  • река

  • озеро,

  • море,

  • река, впадающая в озеро.

Список всех Бассейнов карты находится в окне Pools.

Уровень Бассейна

Значение параметра Altitude задает высоту уровня поверхности воды для выделенного в списке Бассейна. Бассейны воды со значениями параметра Altitude в пределах 10 игровых единиц (0.5м) при рендере будут объединены в один уровень воды с целью оптимизации.

Рендер в Gem RTS поддерживает до 16 различных уровней поверхности воды.

При создании нескольких уровней воды необходимо учитывать, что рендер каждого уровня эквивалентен рендеру целой сцены, и, соответственно, сказывается на fps. Хорошей практикой при проектировании карты является обоснование необходимости различных уровней воды с точки зрения игрового дизайна.

Правила создания бассейнов

  • Если водные поверхности не соединены между собой (например, 2 озера), то рекомендуется делать их разными бассейнами

  • Рукава рек с разным течением допускается делать разными бассейнами (подробности описаны ниже)

  • Каждый уровень воды должен быть обоснован игровым дизайном

Создание Бассейна

Подготовительный этап

Прежде, чем приступить к созданию Бассейна, рекомендуется при помощи инструментов Редактора ландшафта [Land] подготовить рельеф поверхности земли на месте предполагаемого водоема.

Название Бассейна

  1. Вызвать контекстное меню ПКМ на пустом месте окна Pools

  2. Выбрать пункт Add...INSERT

  1. Ввести имя Бассейна в открывшемся окне Input и нажать кнопку Ok.

Имя Бассейна появится в списке окна Pools.

Создание меша поверхности воды

Принцип создания меша водной поверхности аналогичен созданию и редактированию полигонов меша поверхности земли в Редакторе полигонов.

  1. Выбрать в списке окна Pools имя Бассейна, для которого необходимо создать или отредактировать меш поверхности воды

  2. Установить значение параметра Altitude

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

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

Бассейн можно озвучить с помощью Объекта area

Инструменты Редактора воды

Polygons

Кисть Polygons используется для создания и редактирования меша поверхности воды Бассейна. Движение мыши с зажатой ЛКМ приводит к добавлению полигонов меша поверхности воды, с зажатой ПКМ - полигоны удаляются.

Параметры кисти PolygonsОписание

Флажок Wireframe

Включить/выключить отображение полигональной сетки меша поверхности воды

Level

Дробность полигональной сетки меша поверхности воды

На поворотах русла Бассейна реки рекомендуется разбивать полигоны на более мелкие , чтобы текстура материала воды более плавно накладывалась на меш поверхности

Flow

Инструмент для создания течения в Бассейнах рек.

Алгоритм действий

  1. Выставить направляющие точки для Кривой течения - движок сформирует текстурные координаты для создания видимости течения.

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

Пример внешнего вида кривой Flow для Бассейна river

Режимы редактора кривой Flow

Название режимаОписание

Создание

Активируется при отсутствии кривой. Каждый ЛКМ на карту добавляет точку-узел. Клик ПКМ - добавляет последнюю точку и выходит из режима создания.

Редактирование

Активируется при наведении на существующую линию или точку.

ЛКМ на кривой (не в точку) создает новую точку на кривой.

Зажатый ЛКМ на точке кривой позволяет перемещать выбранную точку кривой по карте.

ПКМ на точке кривой удаляет точку.

Правила формирования кривой Flow

  • Начальная и конечная точки должны немного выступать за видимую часть реки (заходить в берега или за край карты)

  • На поворотах рекомендуется располагать точку кривой Flow ближе к внутреннему углу русла, чтобы анимация течения выглядела более естественной

  • В местах смены направления течения воды рекомендуется делать более дробный меш (воспользоваться кистью Polygons level 5) для более плавного смешивания анимаций движения воды

  • Ограничений на количество точек кривой и длины кривой нет

Слайдеры Soft-Sharp и Slow-Fast

Положением слайдеров Soft-Sharp и Slow-Fast задаются плавность и скорость работы кистей Colors и Materials Редактора воды.

Colors

Кисть для подкраски вертексов меша воды. Работает аналогично кисти Colors Редактора ландшафта.

При использовании кисти Color рекомендуется выставить в свойствах материала воды параметр сolor равный белому цвету, так как во время подкрашивания кистью Color цвета вертексов меша и материала воды перемножаются, поэтому дефолтный цвет вертексов в схеме материала будет нивелировать цвет из кисточки.

Materials

Кисть Materials предназначена для разукрашивания поверхности воды. Каждый бассейн содержит свой список материалов. Добавлять материалы в выбранный Бассейн можно с помощью кнопки Add. Доступен импорт материалов из других бассейнов или карт по нажатию кнопки Import.

Настройка параметров материала воды

Окно настройки параметров материала воды открывается при выборе соответствующего материала из списка на вкладке Materials.

Параметр land_texture_basis присутствует во всех материалах карты и задает значение базового тайла материала земли. По умолчанию установлено значение 15.

Базовая настройка материала воды

Материалы воды делятся на два вида:

  • однослойные;

  • двухслойные.

Базовая схема, определяющая количество слоев в материале, выбирается из списка в строке с именем материала.

При добавлении нового материала воды по умолчанию в материале используется схема однослойного материала water/flow.

Настройка однослойного материала

SDL файл схемы находится в ресурсах по ссылке: \resource\entity\service\water\water.mtl

Содержимое SDL файла схемы однослойного материала воды
{"water/flow"
    {bumpvolume_noise "$/water/nwave02"}
    {bumpvolume_wave "$/water/nwave03"}
    {blend blend}
  }
}

Значения параметров материала можно настраивать непосредственно в Редакторе воды на вкладке Materials, выбрав соответствующий материал в списке.

ПараметрОписаниеЗначение по умолчанию

textures

В блоке textures необходимо выбрать текстуры для шума (bumpvolume_noise) и волн (bumpvolume_wave). Текстуры не должны быть одинаковыми

color

Цвет меша поверхности воды

Синий

specular_power

Степень блеска поверхности, влияет на размер пятна спекуляра от "Солнца"

3000

bumpiness_noise

Степень рельефности текстуры ряби

1

specular_amount

Величина спекуляра

soft_attenuation

Влияет на размытость краев воды и косвенно на соотношение refract/reflect. Этот параметр надо менять совместно с fresnel_power

0.1

refraction_scale

Коэффициент искажения refract-составляющей колебаниями воды (0 - не искажается совсем).

0.1

density

Коэффициент соотношения color/refract для иммитации прозрачности воды.

Чем больше значение, тем больше кажущаяся толща воды и меньше видно дно

0.002

reflection_scale

Коэффициент искажения reflect-составляющей колебаниями воды (0 - не искажается совсем).

0.1

fresnel_power

Коэффициент соотношения refract/reflect - отражающая способность поверхности воды. Чем больше значение, тем менее отражающей будет поверхность воды.

2

fresnel_scale

Коэффициент усиления Френеля

1.2

bumpiness_wave

Степень выраженности неровностей текстуры волн, рельефность волн

0.05

period_wave

Частота колебаний волн

1

tile_wave

Растянутость текстуры волн. На больших плоскостях воды нельзя использовать большое значение tile_wave, иначе будут видны тайлы текстуры.

1

period_noise

Частота колебаний ряби. Параметр period_noise нужно настроить так, чтобы его значение не было равно значению period_wave

1

tile_noise

Растянутость текстуры ряби. Необходимо настроить параметры tile_noise и tile_wave так, чтобы tile_noise был как минимум в 2 раза больше, чем tile_wave

2

speed_noise

Скорость проигрывания анимации на текстуре ряби

0.001

speed_wave

Скорость проигрывания анимации на текстуре, имитирующей течение воды

0.01

angle

Угол поворота текстуры при прокрашивании материалом

0

alpha_min

Минимальное значение альфа-канала

1

Настройки двухслойного материала

Двухслойные материалы water\layered_2 используются для создания визуально разной воды на разных участках в пределах одного Бассейна (например, река впадает в озеро)

Принцип настройки двухслойного материала

  • В первом слое настроить параметры материала, аналогично одному однослойному материалу (например, реки)

  • Во втором слое настроить параметры материала, аналогично второму материалу (озера)

  • Параметры для каждого слоя аналогичны параметрам однослойного материала.

Переходы материалов воды

Переход с помощью двухслойного материала

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

Переход между однослойными материалами необходимо прокрасить двухслойным материалом так, чтобы материалы двухслойного материала стыковались с соответствующими материалами каждого из двух стыкуемых однослойных материалов. При раскрашивании использовать ЛКМ и ПКМ для материалов из слоя 1 и 2 соответственно.

ПКМ с зажатым Ctrl (‘pick’ feature) выбирает материал воды в точке клика, при этом возможны следующие варианты:

  • если это материал из текущего бассейна, то он станет активным в списке материалов;

  • если текущий бассейн пустой (в бассейне еще нет полигонов), материал со сцены заменит текущий материал;

  • иначе материал добавится в список материалов текущего бассейна.

Разные материалы в одном бассейне

Пятна с иными свойствами воды можно сделать с помощью двухслойного материала water/layered_2:

  • первый слой в точности повторяет настройки основного материала бассейна, но значение параметра alpha_min=1

  • второй слой настроить согласно визуальным требованиям пятна иной воды и выставить значение параметра alpha_min=1

Пятна иной воды красить с зажатой ПКМ

Объединение материалов с разным направлением течения воды

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

  • С помощью двухслойного материала, с разными значениями параметра angle в слоях

  • С помощью создания нескольких бассейнов, с последующим визуальным объединением бассейнов

Объединение нескольких бассейнов

Если необходимо визуально объединить несколько бассейнов с разными кривыми течения, то бленд материалов воды в бассейнах удобно делать с использованием материала water\flow с параметром alpha_min = 0

Чтобы места соединения Бассейнов не мерцали, необходимо установить параметры Altitude бассейнов с разницей высоты в 0.001.

Дополнительная информация о настройках воды

Цвет воды состоит из следующих составляющих:

  • reflect - отражение (берется из текстуры отражений)

  • refract - дно (берется из текстуры сцены)

  • color - цвет толщи воды, к нему применяется освещение источниками света

  • specular - блики на поверхности от источников света

Параметры воды, влияющие на ее цвет:

  • color

  • density

  • fresnel_power

  • specular_power

  • soft_attenuation

Параметры воды, влияющие на ее внешний вид:

  • bumpiness

  • tile

  • period

  • refraction_scale

  • reflection_scale

Last updated