> 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-fx/nastroika-vfx-na-osnove-istochnika-sveta/urovni-detalizacii-dlya-lokalnykh-istochnikov-sveta.md).

# Уровни детализации для локальных источников света

Система уровней детализации для источников света в Gem RTS позволяет эффективно управлять освещением в сценах, оптимизируя производительность за счет динамического управления затуханием яркости в зависимости от расстояния до камеры.

## **Принцип работы**

Система **LOD** для локальных источников света основана на затухании их яркости вплоть до полного удаления источника света по мере увеличения расстояния до камеры.\
Для каждого источника света определяется его **LOD-класс**, который определяет параметры затухания. По мере увеличения расстояния от камеры до источника света, его яркость плавно уменьшается до полного исчезновения. Такой подход позволяет сократить количество активных источников света в кадре и регулировать радиус их освещения, что снижает нагрузку на рендеринг.

### **Цели системы уровней детализации для источников света**

1. **Оптимизация производительности**
   * **Сокращение радиуса освещения**\
     Снижение яркости источников света уменьшает эффективный радиус освещения, что сокращает количество пикселей, освещаемых источником, и снижает общую нагрузку на систему при расчетах освещения.
   * **Уменьшение количества источников света**\
     Источники света, находящиеся далеко от камеры, удаляются из сцены. Это снижает количество расчетов освещения от локальных источников света, что повышает FPS.
2. **Визуальная реалистичность**
   * **Плавное уменьшение яркости**\
     Затухание яркости источника света с увеличением расстояния соответствует законам физики и делает визуальное восприятие сцены более реалистичным.
   * **Незаметное удаление источников света**\
     Плавное уменьшение яркости делает процесс исчезновения источников света менее заметным для игрока.

## **Классы уровней детализации для локальных источников света**

**LOD-классы** для локальных источников света определяют параметры затухания яркости освещения при их удалении от камеры.\
В **Gem RTS** используются **LOD-классы**, которые описаны в файле `\main\scene\set\lod_light.set`:

* `default`
* `small`
* `medium`
* `big`
* `huge`

Каждому локальному источнику света можно задать **LOD-класс**, согласно его визуальным свойствам.\
Для этого используется **Редактор спецэффектов**.\
В поле `lod` для блока параметров `Light view` необходимо выбрать соответствующий **LOD-класс** из выпадающего списка.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfBy09NNX5jpFi0hAVx2lzuGi7OufatWExpLGcr_QQzLOC2-DeAcHNVGKfMpugGOpOhUPm-F0O7XiM1rSUzjRjqsKb7NBI-OzC-_MqmsrkLL2Zu_4O8NR9ktUlMLuuZnCzG-MyxxNfwxdULE_DxOqWO28mI?key=O2nz-D-1U_djd-57Jgbdfg" alt="" width="563"><figcaption><p>Назначение LOD-класса в Редакторе спецэффектов</p></figcaption></figure>

Если для источника света не задан конкретный **LOD-класс**, будут использованы параметры класса `default`.

### **Конфигурация LOD-классов в редакторе спецэффектов**

Набор имен **LOD-классов**, доступных для выбора в **Редакторе спецэффектов**, прописывается в конфигурационном файле редактора: `resource\interface\editor\efx\view.tpl` в разделе блока `lightview`.

**Пример строк:**

```plaintext
{Block "lod" optional 
  {param "typevalues" blockinfo enum {values "small" "medium" "big" "huge"} {default "medium"}} 
}
```

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FTMy8kTy9TGYT4QSnUvGd%2F%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%CC%86%D0%BA%D0%B0%20%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B0%20%D1%81%D0%BF%D0%B5%D1%86%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82%D0%BE%D0%B2.png?alt=media&amp;token=203d7f78-6e79-4972-b60d-cb6a7cda4279" alt=""><figcaption><p>Пример настройки Редактора спецэффектов</p></figcaption></figure>

{% hint style="warning" %}
Список имен **LOD-классов** в конфигурационном файле **Редактора спецэффектов** должен соответствовать списку, указанному в файле `\main\scene\set\lod_light.set`
{% endhint %}

## **Параметры затухания**

Параметры затухания яркости источников света для каждого **LOD-класса** указаны в файле `\main\scene\set\lod_light.set`.\
Для настройки затухания используются следующие параметры:

* `falloff_start` — расстояние (в метрах), с которого начинается уменьшение яркости источника света;
* `falloff_end` — расстояние, на котором яркость света становится равной нулю, и источник удаляется из сцены.

**Пример конфигурации затухания для LOD-классов**

```plaintext
{levelofdetail
  {"default" ; first lod is default
    {falloff_start 80}
    {falloff_end 150}
  }
  {"small"
    {falloff_start 50}
    {falloff_end 100}
  }
  {"medium"
    {falloff_start 80}
    {falloff_end 120}
  }
  {"big"
    {falloff_start 120}
    {falloff_end 200}
  }
  {"huge"
    {falloff_start 240}
    {falloff_end 360}
  }
}
```

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

### **Особенности настройки и оптимизации**

1. **Оптимизация затухания**\
   Подбор значений параметров `falloff_start` и `falloff_end` выполняется с целью минимизации нагрузки на систему рендеринга. Чем меньше значения этих параметров, тем выше производительность сцены, но при этом необходимо учитывать, чтобы исчезновение источников света происходило плавно и незаметно.
2. **Настройка параметров**\
   Для достижения оптимального баланса между производительностью и качеством визуализации рекомендуется экспериментировать с параметрами для различных классов LOD. Минимальные значения параметров следует устанавливать таким образом, чтобы избежать резких переходов яркости при перемещении камеры.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdqivteRAdMINVLxSZPT45ilWGGE2qEX0VchplkjeOsaPyY-XHi9LytdHlHC72OkAH4PZxjM1icXERd_Of7KAhXDOJJ1VprWEOOqTC1OeF3GCwcEb63ksofX0xpQx-bExuKmTKFoGa0fF93SsamYqucdT4?key=O2nz-D-1U_djd-57Jgbdfg" alt="" width="563"><figcaption><p>Демонстрация затухания яркости локальных источников света</p></figcaption></figure>
