====== Нормали и карты нормалей ======
> Эта статья описывает, как правильно создавать карты нормалей в различных ситуациях, а также распространённые проблемы при генерации и импорте в игру.
===== Генерация нормалей =====
> Перед тем как решить, нужно ли инвертировать один из каналов карты нормалей, убедитесь, что ваш генератор нормалей не делает этого по умолчанию.
> Некоторые генераторы позволяют настраивать инверсию красного (x) и зелёного (y) каналов, но часть из них всегда инвертирует красный канал.
> Стандартная карта нормалей без инверсий выглядит так, будто она освещена сверху справа:
> - Красный канал — освещение справа (ось X)
> - Зелёный канал — освещение сверху (ось Y)
>
> Это соответствует стандарту: освещение с положительных направлений X и Y.
> {{:game:cities:cities_skylines:moding:изображение_2025-08-20_000141321.png?nolink&300|}}
Обычная карта нормалей без инвертированных каналов, а также её красный и зелёный каналы, показанные отдельно. В этом примере буквы должны выглядеть выпуклыми.
> Обычная карта нормалей без инверсий выглядит так, как будто она освещена сверху справа. Это значит, что красный канал выглядит так, как будто он освещён справа, а зелёный — так, как будто он освещён сверху. Это значит, что карта освещена в направлениях x и y, что является [[https://en.wikipedia.org/wiki/Normal_mapping#How_it_works|стандартом для карт нормалей]].
===== Импорт мешей и вращение =====
> Функция поворота в редакторе ассетов **сломана** — она создаёт некорректные тангенты, из-за чего карты нормалей отображаются неверно или вообще не работают.
> Чтобы использовать поворот без ошибок — установите мод **Mesh Import Rotation Tangents Fix**.
>
Если вы хотите использовать функцию вращения без изменения тангенсов и карт нормалей, воспользуйтесь модом [[https://steamcommunity.com/sharedfiles/filedetails/?id=1518485094|Mesh Import Rotation Tangents Fix]].
===== Ассеты =====
> Для стандартных ассетов (здания, предметы, машины, деревья, жители) нормали работают корректно, если использовать **неинвертированные каналы**, как указано выше.
===== Сетевые объекты (Networks) =====
> - Для граней, окрашенных в **пурпурный цвет (vertex paint)** — нормали работают стандартно, как и для обычных ассетов.
> - Для граней **без пурпурной раскраски** (автоматическая плитка, как у дорог и рельс) **зелёный канал необходимо инвертировать**.
=== Ассиметричные сетки ===
> Если вы создаёте асимметричную сетку для сети, применяется флаг инверсии сегментов.
> Это приводит к тому, что **зелёный канал** нормали будет инвертирован **через один сегмент**.
> Решение — создать **две разные сетки** для сегментов:
> - одна с обычной нормалью
> - другая — с инвертированной, либо с отражённой геометрией
===== Темы карты (Map Themes) =====
> - Карты нормалей песка и скал требуют **инвертированного зелёного канала**, чтобы выглядеть корректно.
> - Карта нормалей воды **анимирована** в игре и плавно сменяется между обычной и инвертированной версией.
> {{:game:cities:cities_skylines:moding:изображение_2025-08-20_000439455.png?nolink&300|}}
Обычная карта с инвертированным зелёным каналом и её отображение в игре.