Поліпшення текстур за допомогою карт нормалей (normal maps)


Але для початку трохи теорії з Вікіпедії:

Normal mapping - техніка, що дозволяє змінювати нормаль відображуваного пікселя грунтуючись на кольоровій карті нормалей, в якій ці відхилення зберігаються у вигляді текселя, колірні складові якого [r, g, b] інтерпретуються в осі вектора [x, y, z], на основі якого обчислюється нормаль, яка використовується для розрахунку освітленості пікселя. Завдяки тому, що в карті нормалей задіюються 3 каналу текстури, цей метод дає велику точність, ніж Bump mapping, в якому використовується тільки один канал і нормалі, по суті, всього лише інтерпретуються в залежності від «висоти».

Карти нормалей зазвичай бувають двох типів:

object-space - використовується для не деформуються об'єктів, таких як стіни, двері, зброю і т. п.

tangent-space - застосовується для можливості деформувати об'єкти, наприклад персонажів.

Для створення карт нормалей зазвичай використовується високополігональні і нізкополігональних моделі, їх порівняння дає потрібні відхилення нормалей для останньої.


Це означає що карта нормалей це своєрідна розгортка високоякісної моделі яка натягується на низькоякісну модель з низькоякісної текстурою, в результаті якої на поверхні низькоякісної моделі візуально з'являються деталі у вигляді складок / шорсткостей / структури тканин хоча фактично цього на моделі немає.

Ну якось так, пояснив як міг, своїми словами.


Ну і власне сам метод позбавлення від площини і надання обсягу текстурі. Нам знадобляться:

Нам потрібна карта нормалей (normal map, нормал мап, фіолетова текстура) саме від тієї текстури яку ми хочемо поліпшити. Зазвичай в файлах гри вона називається точно так само як і звичайна, але з закінченням "_nor", "_no", "_n". У деяких іграх вона буває практично прозорою і, одночасно, райдужно-різнобарвною як в Battlefield 2. Відкриваємо її в paint.net.

Поліпшення текстур за допомогою карт нормалей (normal maps)

Робимо її чорно-білою комбінацією клавіш Ctrl + Shift + G або ж натискаємо вкладку Корекція ► Зробити чорно-білим

Поліпшення текстур за допомогою карт нормалей (normal maps)

На цьому етапі нам потрібно усвідомити правильно надано обсяг. Якщо, наприклад, це карта нормалей від текстури одягу, то можна звернути увагу на кишені, шви де одна частина одягу повинна бути трохи вище, а кишені опуклими. Найчастіше доводиться інвертувати кольору, але це не завжди і це треба "відчути нутром". Якщо ви, раптом, проґавили з моментом то швидше за все текстура в кінці виконаної роботи стане світліше колишнього і модель буде виділятися на загальному тлі. Інверсія кольорів відбувається комбінацією клавіш Ctrl + Shift + I або все в тій же вкладці Корекція ► Інвертувати кольору.

Поліпшення текстур за допомогою карт нормалей (normal maps)

Все, ми підготували саме поліпшення. Тепер нам потрібно відкрити покращує текстуру (color map, колор мап, текстура) і створити новий шар комбінацією клавіш Ctrl + Shift + N або через вкладку Шари ► Додати новий шар. Увага: нам вистачить одного нового шару. У нас має бути тільки два шари.

Поліпшення текстур за допомогою карт нормалей (normal maps)

Тепер міняємо властивості цього шару. Клавішею F4 або через вкладку Шари ► Властивості шару. У появівшемcя віконці на потрібний режим змішування "Перекриття" і натискаємо ОК.

Поліпшення текстур за допомогою карт нормалей (normal maps)

Тепер перемикається на підготовлене поліпшення і копіюємо її послідовністю дій: Вибираємо все комбінацією клавіш Ctrl + A і, власне, копіюємо комбінацією Ctrl + C. Перемикаємося на покращувати текстуру, вибираємо новий шар який ми підкоригували (якщо раптом з якихось причин він не вибрано) і вставляємо те, що скопіювали, в цей шар комбінацією клавіш Ctrl + V. І ми відразу зауважимо поліпшення.

Поліпшення текстур за допомогою карт нормалей (normal maps)

Спробуйте відчути різницю:

Поліпшення текстур за допомогою карт нормалей (normal maps)

Тепер об'єднуємо наші шари комбінацією клавіш Ctrl + M або у вкладці Шари ► Об'єднати з наступним шаром. І зберігаємо натиснувши іконку дискети перезаписуючи файл або ж через вкладку Файл ► Зберегти як .. і задавши нове ім'я файлу. Інакше ви збережете його як незакінчений проект програми, а не в звичному нам форматі PNG / BMP.

Поліпшення текстур за допомогою карт нормалей (normal maps)

В принципі на цьому все. Якщо модель складається декількох подмоделей (наприклад модель людини - з голови, ніг і тулуба), то доведеться і їх текстури поліпшити даними способом. Після цього запхати / замінити текстури в файлі формату .txd через TXD Workshop або іншої подібної програми і запхати її в гру.

Як підсумок виконаної роботи, в якості прикладу наведу модель користувача почесний привид під назвою Боєць ВС України в камуфляжі "Гірка"

Поліпшення текстур за допомогою карт нормалей (normal maps)

Поліпшення текстур за допомогою карт нормалей (normal maps)

Поліпшення текстур за допомогою карт нормалей (normal maps)

Так само можна використовувати трохи інший алгоритм, але по суті нічого не зміниться.
1. Відкриваємо текстуру, створюємо новий шар
2. Вставляємо в новий шар карту нормалей і робимо її чорно-білою, інвертуємо кольору
3. Змінюємо режим змішування у властивостях шару і об'єднуємо шари.
4. Готово.