Улучшение текстур с помощью карт нормалей (Normal maps)

В последнее время всё чаще и чаще вижу конверты с современных игр, качество конвертов бывают разных уровней – и хорошие и плохие. Но независимо от качества конверта в целом, в большинстве из них есть синдром "плоских текстур", о чём я, конечно, и жалуюсь в комментариях в файловом архиве. Возможно, конвертеры не знают зачем же нужны эти странные фиолетовый текстуры, или же всего лишь не могут его применить. И я в этой статье научу применять их при конверте.
Теория
Но для начала немного теории с Википедии:
Normal mapping — техника, позволяющая изменять нормаль отображаемого пикселя основываясь на цветной карте нормалей, в которой эти отклонения хранятся в виде текселя, цветовые составляющие которого [r,g,b] интерпретируются в оси вектора [x, y, z], на основе которого вычисляется нормаль, используемая для расчета освещенности пикселя. Благодаря тому, что в карте нормалей задействуются 3 канала текстуры, этот метод дает большую точность, чем Bump mapping, в котором используется только один канал и нормали, по сути, всего лишь интерпретируются в зависимости от «высоты».
Карты нормалей обычно бывают двух типов:
object-space — используется для не деформирующихся объектов, таких как стены, двери, оружие и т. п.
tangent-space — применяется для возможности деформировать объекты, например персонажей .
Для создания карт нормалей обычно используется высокополигональная и низкополигональная модели, их сравнение дает нужные отклонения нормалей для последней.
Это означает что карта нормалей это своеобразная развёртка высококачественной модели которая натягивается на низкокачественную модель с низкокачественной текстурой, в результате которой на поверхности низкокачественной модели визуально появляются детали в виде складок/шероховатостей/структуры тканей хотя фактически этого на модели нет.
Ну как-то так, объяснил как мог, своими словами.
Практика
Ну и собственно сам метод избавления от плоскости и придание объёма текстуре. Нам понадобятся:
• Графический редактор Paint.net (Неплохая программа, весит мало, всегда юзаю сам)
Итак-с начнём.
Нам нужна карта нормалей (normal map, нормал мап, фиолетовая текстура) именно от той текстуры которую мы хотим улучшить. Обычно в файлах игры она называется точно так же как и обычная, но с окончанием "_nor", "_no", "_n". В некоторых играх она бывает практически прозрачной и ,одновременно, радужно-разноцветной как в Battlefield 2. Открываем её в paint.net.
Так же можно использовать немного иной алгоритм, но по сути ничего не изменится.
1. Открываем текстуру, создаём новый слой
2. Вставляем в новый слой карту нормалей и делаем её чёрно-белой, инвертируем цвета
3. Изменяем режим смешивания в свойствах слоя и объединяем слои.
4. Готово.
Рекомендуемые файлы

ASSC (Anti Social Social Club) Grey Hoodie White Title 1.0

Airbus A380-800 F-WWDD Etihad Titles


Custom Wasted/Busted Title

GTA 3 titles upscaled

GTA SA Style loadscreens

Сайлент Хилл. Тизер.

DYOM# v1.7

[RU] Новый русификатор для GTA 3 Definitive Edition v2.1.2 Remastered

CLEO Redux v1.2.2

[RU] GTA San Andreas - Миссии 27-28 (Русская озвучка)


Emotion 98.3 (Advanced Track Player)


Интро ролик GTA SA с участием Young Maylay

Улучшение текстур с помощью карт нормалей (Normal maps)

В последнее время всё чаще и чаще вижу конверты с современных игр, качество конвертов бывают разных уровней – и хорошие и плохие. Но независимо от качества конверта в целом, в большинстве из них есть синдром "плоских текстур", о чём я, конечно, и жалуюсь в комментариях в файловом архиве. Возможно, конвертеры не знают зачем же нужны эти странные фиолетовый текстуры, или же всего лишь не могут его применить. И я в этой статье научу применять их при конверте.
Теория
Но для начала немного теории с Википедии:
Normal mapping — техника, позволяющая изменять нормаль отображаемого пикселя основываясь на цветной карте нормалей, в которой эти отклонения хранятся в виде текселя, цветовые составляющие которого [r,g,b] интерпретируются в оси вектора [x, y, z], на основе которого вычисляется нормаль, используемая для расчета освещенности пикселя. Благодаря тому, что в карте нормалей задействуются 3 канала текстуры, этот метод дает большую точность, чем Bump mapping, в котором используется только один канал и нормали, по сути, всего лишь интерпретируются в зависимости от «высоты».
Карты нормалей обычно бывают двух типов:
object-space — используется для не деформирующихся объектов, таких как стены, двери, оружие и т. п.
tangent-space — применяется для возможности деформировать объекты, например персонажей .
Для создания карт нормалей обычно используется высокополигональная и низкополигональная модели, их сравнение дает нужные отклонения нормалей для последней.
Это означает что карта нормалей это своеобразная развёртка высококачественной модели которая натягивается на низкокачественную модель с низкокачественной текстурой, в результате которой на поверхности низкокачественной модели визуально появляются детали в виде складок/шероховатостей/структуры тканей хотя фактически этого на модели нет.
Ну как-то так, объяснил как мог, своими словами.
Практика
Ну и собственно сам метод избавления от плоскости и придание объёма текстуре. Нам понадобятся:
• Графический редактор Paint.net (Неплохая программа, весит мало, всегда юзаю сам)
Итак-с начнём.
Нам нужна карта нормалей (normal map, нормал мап, фиолетовая текстура) именно от той текстуры которую мы хотим улучшить. Обычно в файлах игры она называется точно так же как и обычная, но с окончанием "_nor", "_no", "_n". В некоторых играх она бывает практически прозрачной и ,одновременно, радужно-разноцветной как в Battlefield 2. Открываем её в paint.net.
Так же можно использовать немного иной алгоритм, но по сути ничего не изменится.
1. Открываем текстуру, создаём новый слой
2. Вставляем в новый слой карту нормалей и делаем её чёрно-белой, инвертируем цвета
3. Изменяем режим смешивания в свойствах слоя и объединяем слои.
4. Готово.
Рекомендуемые файлы

ASSC (Anti Social Social Club) Grey Hoodie White Title 1.0

Airbus A380-800 F-WWDD Etihad Titles


Custom Wasted/Busted Title

GTA 3 titles upscaled

GTA SA Style loadscreens

Сайлент Хилл. Тизер.

DYOM# v1.7

[RU] Новый русификатор для GTA 3 Definitive Edition v2.1.2 Remastered

CLEO Redux v1.2.2

[RU] GTA San Andreas - Миссии 27-28 (Русская озвучка)


Emotion 98.3 (Advanced Track Player)


Интро ролик GTA SA с участием Young Maylay
