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

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

<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\\&#x20;

## Файлы 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&#x20;
* format=dds
* compression=16
* extract=out
* size=4096&#x20;
* \<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*
* &#x20;*quality normal*&#x20;
* mips&#x20;
* 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&#x20;
* format=dds
* clamp
* compression=16
* ibl-ld=out&#x20;
* size=512&#x20;
* \<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&#x20;
* quality normal&#x20;
* no-mips&#x20;
* extract-from-atlas&#x20;
* 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\\&#x20;

<details>

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

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

В процессе конвертации в папке **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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bestway-1.gitbook.io/documentation/gem-rts-v1-ru/tekstury-i-materialy/pbr-tekstury-neba.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
