> For the complete documentation index, see [llms.txt](https://docs.bestway.com.ua/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bestway.com.ua/gem-rts-v1-ru/redaktor/redaktor-kart/redaktor-landshafta/redaktor-travyanogo-pokrova.md).

# Редактор травяного покрова

**Редактор травяного покрова \[Grass]** в GEM RTS предназначен для добавления и редактирования **травяного покрова** на поверхности карты.

**Травяной покров** карты представляет собой совокупность всех **бассейнов травы**.\
**Бассейн травы** представляет собой слой поверхности, содержащий модели травы из одного или нескольких **шаблонов травы**.

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

Для доступа к редактору необходимо открыть вкладку `Grass` в [Редакторе ландшафта](/gem-rts-v1-ru/redaktor/redaktor-kart/redaktor-landshafta.md).

## Элементы интерфейса Редактора травы

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfUDpqUvjNAfGFbON173sHCwEkmbQWKpAUqRmV7uF2FV4L86rWKSZMuBadxjKwZvX3mau3mVkcOHKZSDVh5D042A6la4aHbTNSYKC0AjIEAoUxFmu2AWQDEzmE93NyWf8ER1pNdVg?key=QaKaK7SdEZtj-dPBBVCvXShY" alt=""><figcaption><p>Окно вкладки <code>Grass</code> Редактора ландшафта</p></figcaption></figure>

1. Слайдеры настройки кисти `Grass`
2. Список бассейнов травы
3. Кнопки управления списком бассейнов травы
4. Окно настройки модификаторов для выбранного бассейна
5. Список доступных шаблонов (паттернов) травы
6. Сцена

Создание, редактирование и удаление травяного покрова осуществляется на сцене в реальном времени с использованием кисти `Grass`.

## Настройка параметров кисти Grass

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FSJGL2nPNM4ckvoVepJit%2FGrass%20Brush.png?alt=media&amp;token=9aa0d51c-4fc0-49fb-aa27-ff27c5d52f42" alt="" width="563"><figcaption><p>Настройка параметров кисти <code>Grass</code></p></figcaption></figure>

* `Sharp`/`Soft` - регулирует степень размытия границ области рисования.
* `Slow`/`Fast` - управляет скоростью добавления моделей травы в процессе рисования.
* Размер кисти `Grass` регулируется кнопками клавиатуры `+` (Плюс) и `-` (Минус)

## Список бассейнов травы

Список отображает имена всех бассейнов травы, используемых в текущей карте.\
Имя выбранного бассейна травы подсвечивается.\
**Имя бассейна** содержит **имя типа** бассейна и **краткое описание** бассейна.\
Например, `grid ‘grass green’`:

* grid - имя типа бассейна;
* grass green - описание бассейна.

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

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FxuDFkjpRfFUeISTCClSC%2FGrass%20-%20List%20of%20Grass%20Pules.png?alt=media&amp;token=0b6a48ca-92fd-4543-95db-901a0f60b6b6" alt=""><figcaption><p>Пример окна списка бассейнов</p></figcaption></figure>

### Кнопки управления списком бассейнов

* Add - добавляет новый бассейн.
* Delete - удаляет выбранный бассейн.

{% hint style="info" %}
В текущей версии редактора доступен только один тип бассейна травы - grid.\
Также предусмотрена возможность реализации других типов бассейнов, например, процедурно-генерируемых.
{% endhint %}

### Окно модификаторов бассейна

Каждый бассейн обладает индивидуальным набором модификаторов, влияющих на внешний вид травяного покрова.

Модификаторы управляют настройками параметров бассейна травы, а также параметрами спавна моделей травы в процессе использования кисти Grass.

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

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FNxUo3gIPKGgnUZO6pWau%2FSetting%20up%20Grass%20pool%20parameters.png?alt=media&amp;token=d545f7c8-7e39-4f73-ba03-243b7d89e2ee" alt="" width="563"><figcaption><p>Настройка модификаторов выбранного бассейна травы</p></figcaption></figure>

<table data-header-hidden><thead><tr><th width="212">Название параметра</th><th>Описание</th></tr></thead><tbody><tr><td><code>name</code></td><td>Cодержит кодовое имя бассейна или краткое его описание.<br>Пример: <code>‘grass fields’</code></td></tr><tr><td><code>cell size</code></td><td>Определяет размер ячейки сетки (<code>grid</code>), задающий плотность размещения травы.<br><strong>Изменение параметра доступно только для пустого бассейна.</strong></td></tr><tr><td><code>rotation</code></td><td>Изменяет угол поворота сетки бассейна типа <code>grid</code>.<br>С помощью модификатора <code>rotation</code> можно создавать бассейны травы для полей, развернутых на произвольный угол по отношению к разметке поверхности земли.<br><strong>Изменение параметра доступно только для пустого бассейна.</strong></td></tr><tr><td><code>scale range</code></td><td>Задает диапазон масштабирования объектов травы в процессе использования кисти <code>Grass</code>.<br>Каждая модель объекта травы масштабируется случайным образом в пределах указанного диапазона .</td></tr><tr><td><code>spreading</code></td><td>Определяет степень смещения объектов травы от узлов сетки в процессе использования кисти <code>Grass</code>. При значении <code>spreading = 0</code> модели размещаются строго в узлах, что используется для создания полей с растениями, расположенными вдоль "борозд" на текстуре земли.</td></tr><tr><td><code>strict angle</code></td><td>Регулирует угол размещения объектов травы на склонах.<br>*<em>В текущей версии редактора данный модификатор отключен</em>.</td></tr></tbody></table>

## Окно списка шаблонов травы

Окно `Patterns` содержит список имен доступных шаблонов для кисти `Grass` для рисования травяного покрова в выбранном бассейне.

Имя выбранного шаблона подсвечивается.

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FR5h4GL6W4uyOxaFQHbhz%2FGrass%20Patterns.png?alt=media&amp;token=fce4512b-0ca2-48e2-922c-0b858ee3af33" alt="" width="563"><figcaption><p>Примеры шаблонов, шаблон <code>plant_3</code> выбран из списка для рисования</p></figcaption></figure>

{% hint style="info" %}
Описание шаблонов находится в файле `scene/set/grass.set`
{% endhint %}

{% hint style="success" %}
Модели травы, используемые в шаблонах, обладают ниже перечисленными свойствами:

* поддерживают различные материалы;
* отбрасывают тень и обладают свойством самозатенения;
* взаимодействуют с "ветром";
* поддерживают функцию "горения".
  {% endhint %}

## Принцип работы кисти Grass

Кисть добавляет или удаляет травяной покров на поверхности карты:

* `ЛКМ` добавляет траву с учетом параметров выбранного бассейна и шаблона.
* `ПКМ` удаляет травяной покров из выбранного бассейна.

Заданные модификаторы **бассейна травы** применяются при спавне **объектов травы** из выбранного **шаблона травы** в процессе рисования кистью `Grass`.

### Рекомендации к работе с Редактором травы:

* Использование различных шаблонов позволяет создать более естественный и разнообразный ландшафт.
* Индивидуальная настройка модификаторов бассейна травы позволяет настроить кисть в зависимости от конкретной задачи, будь то создание густого леса или редкой травы на лугах, или ряды высаженных растений на полях;
* Сочетание травяного покрова с другими элементами ландшафта, такими как объекты деревьев и кустарников позволяет оптимизировать сцену и создавать более реалистичные и функциональные пейзажи.

### Алгоритм использования кисти Grass

#### Добавление травы

1. Добавить в список бассейнов травы новый бассейн или выбрать из списка существующий.
2. Для пустого бассейна настроить параметры сетки (размер сетки `сell size` и поворот сетки `rotation`).
3. Настроить модификаторы для моделей травы (масштабирование `scale range` и рассеивание `spreading`).
4. Из списка `Patterns` выбрать шаблон травы.
5. Провести кистью с зажатой `ЛКМ` или совершить одиночные клики по карте в тех местах, где нужно добавить травяной покров.

{% hint style="info" %}
Пункты 3, 4 и 5 можно повторять, выбирая различные шаблоны травы из списка `Patterns`, а также подбирая более подходящие значения параметров масштабирования `scale range` и рассеивания `spreading`.
{% endhint %}

#### Удаление травы

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

{% hint style="danger" %}
Удаление бассейна травы приводит к удалению с карты всех моделей травы, принадлежащие удаленному бассейну.
{% endhint %}

{% hint style="warning" %}
При проектировании карт необходимо учитывать, что наличие травянового покрова влияет на производительность, и использовать различные методы оптимизации, чтобы избежать падения FPS.
{% endhint %}

## Комплексный подход к созданию реалистичного ландшафта

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

* Редактор материалов земли
* Редактор Color
* Редактор травы
* Редактор Entity для дополнения рисунка текстур на поверхности земли объектами камней, растительности и объектов антуража

**Общие рекомендации для комплексной работы**

1. **Формирование естественного травяного покрова**
   * В реальной среде травяной покров обычно разнообразен и распределён неравномерно, что отражает особенности рельефа и типа грунта. Наложение друг на друга различных бассейнов травы в сочетании с неравномерной по плотности прорисовкой травяного покрова помогает достичь более реалистичного вида.
   * Использование разнообразных шаблонов (короткая, высокая, выгоревшая трава и т. д.) зачастую создает требуемый эффект натуральности.
   * В местах, где трава не планируется по сюжету или дизайну карты, будет уместно отказаться от неё полностью.
2. **Использование Кисти Color для сохранения визуальной целостности**
   * На больших расстояниях от камеры прорисовка травы отключается ради оптимизации. При этом умеренное использование кисти `Color` способно создать иллюзию присутствия растительности.
   * Сглаживание переходов между землёй и травой с помощью корректировки цвета нередко помогает избежать резких контрастов. Визуальное единство часто сохраняется, если оттенок земли и травяного покрова соотносятся друг с другом.
3. **Сочетание текстур, объектов окружения и травяного покрова**
   * Часто возникает необходимость скорректировать цвет материала земли и травяного покрова. Нужного эффекта можно достичь двумя способами: корректировкой оттенка текстуры земли в параметрах нужного материала на вкладке `Textures` или добавлением цвета вертексам полигональной сетки поверхности земли кистью `Color`.
   * Размещение отдельных объектов (высоких трав, камней, небольших кустарников) часто делает пейзаж разнообразнее и помогает достичь эффекта живого окружения. Компоновка таких элементов нередко определяется общей стилистикой и логикой карты, включая рельеф и предполагаемый характер местности.
