====== Нормали и карты нормалей ====== > Эта статья описывает, как правильно создавать карты нормалей в различных ситуациях, а также распространённые проблемы при генерации и импорте в игру. ===== Генерация нормалей ===== > Перед тем как решить, нужно ли инвертировать один из каналов карты нормалей, убедитесь, что ваш генератор нормалей не делает этого по умолчанию. > Некоторые генераторы позволяют настраивать инверсию красного (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|}} Обычная карта с инвертированным зелёным каналом и её отображение в игре.