> 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/tekstury-i-materialy/pbr-tekstury-neba.md).

# Текстуры неба

## Макет кубемапы неба

<figure><img src="https://lh7-us.googleusercontent.com/v_qdNfLmBnm13oC19Li6RygAuNsZ4PMLuhLV5PIKQid-HlqM838LiyQR4q4xeYTulKIpSKhO0YUMR9wufIM_OM7o_HQFqGpM2h3uvjsqyTxCa5nnB4QLaLB96_2GTf5SWbVAgYX4ucsV4C3T6JraIWo" alt=""><figcaption><p>Раскладка куба неба на слои</p></figcaption></figure>

## Компрессия текстур неба

Используйте BC6H\_SF16 формат для HDR текстур неба

## Расположение файлов текстур неба

Папка с готовыми HDR файлами тексур неба в ресурсах игры:

main\scene\texture\common\environment\hdr\\

## Файлы HDR текстур неба

<table><thead><tr><th width="213">Название файла</th><th width="170">Назначение</th><th width="107">Размер</th><th>Примечание</th></tr></thead><tbody><tr><td><strong>&#x3C;name>.dds</strong></td><td>cubemap,<br>основная текстура неба</td><td>4k</td><td></td></tr><tr><td>generated\<strong>&#x3C;name>_diffuse.dds</strong></td><td>diffuse map</td><td>128 x 128</td><td></td></tr><tr><td>generated\<strong>&#x3C;name>_specular.dds</strong></td><td>specular map,<br>текстура бликов неба</td><td>512 x 512<br></td><td>в mips лежат карты отражения для разной степени шероховатости</td></tr></tbody></table>

## Конверсия текстур неба из EXR формата в игру

{% hint style="info" %}
Исходники для текстур неба должны быть в формате EXR
{% endhint %}

### **Инструментарий**

<table><thead><tr><th width="199">Название</th><th width="193">Установка</th><th>Примечание</th></tr></thead><tbody><tr><td><a href="https://developer.nvidia.com/texture-tools-exporter">Nvidia Texture Tools</a></td><td>Распаковываем архив в нужную папку</td><td></td></tr><tr><td>cmgen</td><td>Скрипт предполагает установку на диск C:\ по стандартному пути</td><td>Инструмент для работы с кубмапами, который является частью <a href="https://github.com/google/filament">Filament библиотеки</a> для Android.<br>Разработчики Gem RTS используют собственную версию cmgen, адаптированную под специфику работы с текстурами неба для игр на движке Gem RTS</td></tr></tbody></table>

<details>

<summary>Настройки скрипта конверсии основной текстуры неба с помощью cmgen</summary>

cmgen.exe --type=horizontal --format=dds --compression=16 --extract=out --size=4096 \<name>.exr

**Пояснения**\
Запускаем cmgen.exe со следующими параметрами:

* type=horizontal
* format=dds
* compression=16
* extract=out
* size=4096
* \<name>.exr

</details>

<details>

<summary>Настройки скрипта конверсии основной текстуры неба с помощью nvidia texture tools</summary>

\--format bc6 --texture-type cubemap --quality normal --mips --mip-filter box --no-mip-gamma-correct --no-mip-pre-alpha

**Пояснения**\
Запускаем nvidia texture tool со следующими параметрами:

* *format bc6*
* *texture-type cubemap*
* *quality normal*
* mips
* mip-filter box
* no-mip-gamma-correct
* no-mip-pre-alpha

</details>

<details>

<summary>Настройки скрипта конверсии текстуры бликов неба с помощью cmgen</summary>

cmgen.exe --type=horizontal --format=dds --clamp --compression=16 --ibl-ld=out --size=512 \<name>.exr

**Пояснения**\
Запускаем cmgen.exe со следующими параметрами:

* type=horizontal
* format=dds
* clamp
* compression=16
* ibl-ld=out
* size=512
* \<name>.exr

</details>

<details>

<summary>Настройки скрипта конверсии текстуры бликов неба с помощью nvidia texture tools</summary>

\--format bc6 --texture-type cubemap --quality normal --no-mips --extract-from-atlas --atlas-mips 6

Пояснения\
Запускаем nvidia texture tool со следующими параметрами:

* *format bc6*
* texture-type cubemap
* quality normal
* no-mips
* extract-from-atlas
* atlas-mips 6

</details>

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

{% hint style="info" %}
Обязательно нужно проверять результат на каждом шаге, чтобы очередная операция при работе с текстурой неба не вырезала HDR, сведя большие значения к 1
{% endhint %}

1. Исходные текстуры в формате EXR сложить в папку **in\\**
2. Переименовывать файлы по мере необходимости
3. Удалить из папки **in\\** лишние файлы
4. Запустить скрипт конверсии
5. Скрипт создаст на каждую **.exr** текстуру в папке **in\\** по 3 файла в папке **temp\\** и в папке **out\\**
6. Файлы из папки **out\\** можно скопировать в ресурсы игры в папку packagename\scene\texture\common\environment\hdr\\

<details>

<summary>Пример</summary>

Пусть исходный файл **kloofendal\_48d\_partly\_cloudy\_4k.exr** находится в папке **in\\**

В процессе конвертации в папке **temp\\** после обработки в программе cmgen.exe появятся промежуточные файлы в формате .exr:

* kloofendal\_48d\_partly\_cloudy\_4k.exr
* kloofendal\_48d\_partly\_cloudy\_4k\_diffuse.exr
* kloofendal\_48d\_partly\_cloudy\_4k\_specular.exr

В папке **out\\** - будут создан файлы в формате dds, готовые к размещению в ресурсах игры

* kloofendal\_48d\_partly\_cloudy\_4k.dds
* generated\kloofendal\_48d\_partly\_cloudy\_4k\_diffuse.dds
* generated\kloofendal\_48d\_partly\_cloudy\_4k\_specular.dds

</details>
