Створення, опис особливостей і пояснення роботи карт рельєфу

В цій статті # 91; 1 # 93; я постараюся пояснити створення правильних карт bump і bump # за допомогою Adobe Photoshop і X-Ray SDK. Думаю, з цими додатковими складовими текстурами багато хто стикався, багато хто шукав шляхи правильного їх створення. Насправді, щоб правильно створити бамп-карти, необхідно освоїти як технічну сторону питання (робити, так би мовити, "по науці"), так і практичну (різні методики роботи в фотошопі, обробка текстури, виправлення можливих косяків і т. Д. ). У даній статті найбільше уваги буде приділятися саме першого пункту, адже в будь-якій справі краще спочатку вивчити основи, а потім, в тому числі, самостійно навчаючись, отримати досвід в практиці, поліпшити свою майстерність.

Трохи про структуру і стилістиці статті, щоб все було в подальшому більш зрозуміло
Багато ігрові текстури (в Сталкере - все) знаходяться в форматі RGB. Якщо хто не знає, є поняття "канали". Їх вкладка в ФШ знаходиться праворуч, "Шарів". У RGB це:

При їх "змішуванні", отримуємо нормальну забарвлення зображення. Загалом, вказівки по каналах в даній статті будуть даватися у вигляді, як блок вище. Іноді в RGB каналів більше (можете самі спробувати додавати в фотошопі). У грі використовується канал Альфа 1 (його ще просто "Альфою" кличуть). У нього є, зрозуміло, свої особливі функції. Разом, ось так будуть виглядати вказівки по каналах:

  • R - що повинно бути на червоному каналі
  • G - що на зеленому
  • B - що на синьому
  • Alpha - що на Альфі

Для початку спробую пояснити структуру основних карт і розібрати основні поняття статті. Все нижче написане не обов'язково вірно на всі 100%.

Height Map (карта висот)

Карта висот - суто службова карта в Сталкера. Як окрема текстура не зустрічається, проте, якщо ви робите карту нормалей в фотошопі, то для початку потрібно буде створити або "запекти" в спеціальних програмах карту висот. У карті висот все побудовано на білих (висоти), чорних (западини), сірих (плюс-мінус рівні площини) відтінках. В цілому, в основному виходить, що основна частина зображення - сіра, в опуклих місцях воно світліше, а на місці западин - темніше.

Normal Map (карта нормалей)

При включеному RGB на каналах, виглядає як текстура в синіх, фіолетових, бузкових, навіть іноді рожевих кольорах. Normal Map дуже і дуже рекомендується створювати для бампа (тим більше, якщо вона з хай-поли моделі), а не використовувати скорочений варіант з картою висот (про це дізнаєтеся в розділі SDK нижче). Normal Map, власне, і зраджує текстурі різних об'ємних рис. Надалі, після складання в SDK, карта стане частиною bump.

Карта bump являє собою звичайну карту нормалей в форматі A (BGR) (типово для формату стиснення DXT5_nm). Розробники використовували такий порядок по дуже простій причині - DXT компресія набагато менше "псує" текстуру, так як альфа-канал не піддається компресії і залишається практично в початковому вигляді. Поясню: ще раз гляньте на канали карти нормалей. А тепер уявіть, що на порожнє зображення з каналами RGBA поставили все ту ж карту нормалей, тільки перевернуту по каналах. Тобто наповнення R з карти нормалей перейшло на канал Альфа (А) карти bump. G перейшло в B, B перейшло в G. Що стосується каналу R в бампи, туди поставили Specular Map (карту відблисків). Про неї можете детальніше почитати в міні-словнику термінів.
Також хочу нагадати, що в своєму повному вигляді карта bump створюється з карти нормалей + текстурою з спекулярит на Альфі в SDK. Така-от текстурная солянка. Думаю, ви знаєте, що вона в грі робить, але якщо ви зіткнулися з даними термінами перший раз, то все досить просто: карта робить текстуру об'єкта більш красивою, об'ємної, з виступами і западинами, додає або забороняє відображення текстурою світла від сонця, лампи , ліхтарика і т. д. Ось, наприклад, нового аркушу металу було б непогано надати можливість відображати відблиски, а цегляної текстурі задати западини між цеглинками. А ось дереву, припустимо, ніяких відображень світла не треба, хоча висоти (западини і опуклості) додати таки можна. Ще зауважу, що бампи не потрібні для текстур партіклов, текстур інтерфейсу і ще ряду специфічних зображень. До основної текстурі прив'язується через файл текстура.thm. Але з приводу цього не турбуйтеся, адже файли thm з'являється при створенні бампа / підключенні бампа до текстури в SDK.

Створення, опис особливостей і пояснення роботи карт рельєфу

Канали в карті bump

Bump # - дуже цікава карта, призначення якої для багатьох незрозуміло. Так як знайти будь-яку інформацію щодо правильного назви мені не вдалося, я називаю її просто "Normal error map". Не знаю, чи використовуються подібні технології в інших іграх, але зустріти її де-небудь, крім сталкера, мені не вдалося. Ця карта "виправляє" помилки стиснення DXT у бампа і генерується тільки за допомогою SDK, тому всякі незрозумілі дії деяких користувачів, на кшталт вставки замість неї звичайною або прозорої карти нормалей, а також описаного в статті Argus'a заливання сірим зі вставкою в альфа-канал карти висот, використовувати не можна. Виглядає як сіре зашумлене зображення. Ще раз нагадую, bump # створюється автоматично при генеруванні bump в SDK.

Створення, опис особливостей і пояснення роботи карт рельєфу

Міні-словник термінів

Робота в фотошопі

Тут також знадобиться NormalMapFilter від nVidia. думаю, у вас він вже встановлений, тому що він йде в комплекті з dds-плагіном або інший зручний плагін (озвучені вище, в теорії карти нормалей). Всі файли зберігаються в tga 24 bits / pixel (якщо немає альфа-каналу) або 32 bits / pixel (якщо є альфа-канал). Перед збереженням слід перевести зображення з 16-бітного в 8-бітове.

Карта висот

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

  • Над картою висот робота повинна проводитися строго в 16bits, причому з самого початку до фінального експорту в SDK

Створення, опис особливостей і пояснення роботи карт рельєфу

Переклад в 16-бітове зображення

  • Якісного результату не буде, якщо просто взяти і засунути диффузную текстуру в генератор, не робіть цього. Доведеться ретельно попрацювати над картою висот.
  • Не обов'язково намагатися показати на мапі висот всі деталі і рельєф відразу, їх можна додати пізніше, коли буде згенеровано карта нормалей.
  • Приклад додавання деталей


    (Приклад зроблений прямо під час написання статті)

    • Для карти висот, якщо робите її з дифузії, можна взяти один з каналів RGB дифузійної текстури або ж взяти знебарвлену. При першому варіанті, виберіть бажаний канал, виділяйте зображення, копіюйте, вставляйте його в новий документ. Нове зображення буде в режимі "Градація сірого". Рекомендую перевести знову в RGB. так як не всі плагіни і фільтри читають "Градацію". При другому варіанті, просто створіть дублікат зображення і натисніть Ctrl + Shift + U ( "Знебарвити").
    • На текстурі карти висот можна зробити шар поверх фонового, на який потрібно скопіювати знебарвлену інвертовану вихідну текстуру. Звучить не дуже, але це все не складно. Беремо диффуз, натискаємо Ctrl + I (інвертуємо). Потім знебарвлюється, як показано вище. Копіюємо на новий шар карти висот. Режим накладення виставляємо "Перекриття" ( "Overlay"). Далі ще можна зробити шар більш прозорим. В цілому, дивіться, щоб текстура була збалансованою в плані площин. Рівна частина повинна бути заповнена сірим відтінком.
    • Дуже знадобляться в цьому випадку інструменти "Освітлювач" і "Випалювання".
    • Поверх всього можна додати ще один шар, на якому будете використовувати інструменти в роді "Пензлі".

    Metro 2033 (якщо кому цікаво)

    Створення, опис особливостей і пояснення роботи карт рельєфу

    Приклад одержуваної карти нормалей з Метро 2033


    У метро замість карт нормалей, як зазвичай буває в більшості ігор, використовується карта висот - файли з постфіксом _bump. Вони є тільки в тому випадку, якщо ви розпаковували гру самостійно, велика частина збирачів "Архівів моделей" їх в архів не додає. "Склад" карти висот Метро 2033:

    Карта нормалей

    Створення відбувається наступним чином: беремо карту висот, відкриваємо фільтр, задаємо настройки на розсуд. Далі отримуємо готову карту нормалей. Потрібно оглянути карту, щоб там не було дрібних непотрібних горбиків і інших недоліків. Швидше за все, все можна буде вирішити розмиванням в деяких місцях. Ще, як варіант, чудова методика розмиття, при якій зображення все одно залишається більш чітким:
    1. дублюємо фоновий шар.
    2. дубліката виставляємо режим "Перекриття".
    3. Застосовуємо один з фільтрів розмиття (наприклад, "Розумієте по Гауса").
    4. Якщо треба, дублюємо цей шар ще пару раз.

    Specular Map

    Дану карту створювати не складно: взяти знебарвлений диффуз і обробити темним відтінком ті регіони, які не будуть відбивати світло, а світлим - які будуть. Чим інтенсивніше відтінок, тим сильніше ефект.

    Карта нормалей

    При наявності вже готової карти нормалей, виготовленої вами, з іншої гри, zBrush або будь-який інший програми високополігональні 3D моделювання, залишається тільки додати її в SDK. Для чого реєструвати в SDK? Для того, щоб потім поєднати Normal Map із заготівлею для бампа і отримати бамп. параметри:

    Type: 2D Texture, Format: 32 bit (8: 8: 8: 8), MipMap Filter: Kaiser (тут вже за бажанням, я завжди використовую Kaiser)

    Створення, опис особливостей і пояснення роботи карт рельєфу

    Схожі статті