Статьи » Обучающие статьи » Adobe Photoshop


Краткий экскурс в мир альфа-каналов и карт нормалей


Автор статьи: Koxae

Добавлено: 03 Января 2012 в 06:43 | Обновлено:
Просмотров: 11480 | Комментарии: 17

Понравилось: 45 пользователям




Альфа-канал играет немаловажную роль при создании текстур. В нём используются только градации серого. Запомнить как он работает очень просто: белый - да, чёрный - нет, серый - так себе, в зависимости от светлости. Найти его можно, разумеется, в свитке каналов - Channels. Вот он, как раз, в самом низу, так и называется Alpha 1


Больше одного альфа-канала для игровых текстур оставлять не нужно.

Для диффузной карты альфа-канал используется только в том случае, если мы хотим сделать часть текстуры прозрачной. В этом случае чёрным закрашиваем то, что хотим отрезать, серым - что будет полупрозрачным (редко используется), белым - всё остальное.

Что касается карты свечения - glow map (маркер _g в конце имени файла) и карты глянца - environment mask (маркер _m в конце имени файла), то им альфа-канал не нужен вообще, они сами себе являются альфа-каналом. Тут тот же принцип: белый светится или отражает, чёрный - нет. Для карты свечения возможно использование цветов, но существует масса нюансов, поэтому опустим.

И, наконец, карта нормалей - normal map, в подавляющем большинстве, просто обязана иметь грамотный альфа-канал, в противном случае, модель будет выглядеть как маслом намазанная. Белый альфа-канал есть смысл оставить только для драгоценных камней, чистого нового стекла и жидкостей. Всё остальное приглушаем. Обычная ткань и неполированное дерево - почти чёрный цвет альфа-канала.

Ну, вот мы и подобрались к самому интересному

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

Сделать сиё чудо можно несколькими способами. Некоторые требуют хорошего навыка моделирования 3х-мерных объектов и нам сейчас не подходят. К счастью, есть плагин от славных людей из NVidia для создания карт нормалей из любого изображения. Есть ещё потрясающая программа CrazyBump, она гораздо лучше плагина NVidia, но категорически платная. Поэтому остановимся на плагине.
Откроем текстуру, для которой мы хотим создать карту нормалей, для примера я взяла маленькую текстуру брусчатки:


Применим к текстуре NormalMapFilter (Filter -> NVIDIA Tools -> NormalMapFilter):



В разделе Height Generation настраивается общее отображение будущей карты нормалей.
Пункт Wrap для безшовных текстур лучше выключить, иначе появятся швы на стыках, для одиночных текстур - всё равно. Все 3 пункта Invert делают то, что и написано, но мне ни разу не понадобились, поэтому я ничего не буду писать про них.
Путём выбора значения sample в подразделе Filter Type выбирается, собственно, детализация.






Как видите, самый чёткий результат мы получаем устанавливая значение sample 4.

В поле Scale настраивается высота рельефа. Для сравнения:



Главный недостаток NormalMapFilter в том, что он не умеет различать мелкие и крупные детали текстуры. Поэтому мы можем получить либо детализированную карту с небольшим рельефом, либо высокий рельеф без мелких деталей.
Выходов из этой ситуации несколько.

1. Отредактировать непосредственно изображение, сделав максимально контрастными крупные детали и минимально контрастными мелкие. Иногда этого не избежать, но для не очень сложных текстур есть ещё пара хитростей.
Приведу пример на сделанной на коленке простой текстуре:


Попробуем применить к ней NormalMapFilter со значениями 4 samples и 30 scale (я хочу получить достаточный контраст):


И уже видны косяки - чересчур рельефное дерево при недостаточном рельефе борозд и кнопки. К тому же, кнопка обрела на своей поверхности абсолютно ненужные детали. Единственный путь к вменяемой карте нормалей для этой текстуры я вижу в редактировании изображения. Я перевела все элементы текстуры в градации серого, изменила их контрастность и яркость и добавила тёмные ореолы кнопке и бороздам, в первом случае - кнопка слегка утоплена, во втором - смягчаю контур борозд:


Применила фильтр с теми же самыми настройками:


Уже больше похоже на правду.

2. Второй способ я подсмотрела на сайте render.ru, идея принадлежит Евгению Булатову. Возвращаемся к нашей подопытной текстуре брусчатке, переводим изображение в 16 Bits/Chanel (меню Image –> Mode), обесцвечиваем Ctri+Shift+U и применяем NormalMapFilter с настройками: 4 sample, scale 5, Average RGB.


Затем, дублируем слой, применяем фильтр Blur -> Gaussian Blur с небольшим значением (я выбрала 2) и назначаем слою тип смешивания Overlay. Повторяем процедуру: дублируем дублированный слой (тот, который уже размыт), Gaussian Blur (можно нажать Ctrl+F и последний фильтр применится сам с последними настройками); дублируем, размываем и так много раз. Вот что у меня получилось при 10и дублированных слоях:


И мелкие детали видны и рельеф на месте. Осталось завершить процесс. Объединяем все слои в один, применяем NormalMapFilter изменив Average RGB на Normalize Only и переводим изображение в 8 Bits/Chanel:



3. Дублируем слой Background с текстурой, на слой Background применяем NormalMapFilter со значениями: 9х9 samples, 20 scale, Average RGB (*1). Затем, на сдублированный слой применяем тот же NormalMapFilter, но со значениями: 4 samples, 3 scale, Average RGB, дублируем его (*2), сливаем все слои и применяем NormalMapFilter изменив Average RGB на Normalize Only (*3).



Осталось сделать адекватный альфа-канал и карту нормалей можно считать готовой к употреблению.




Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Всего комментариев: 17


0
№:17 от manver00
1419498
| Проверенный | в 20:51 (27 Ноября 2016)
Объясните пожалуйста, будьте так добры, что значит сделать адекватный альфа-канал? Что вставляется в файл имя_s.dds?
UPD: с альфа-каналом вроде разобрался. Даже получилось ретекстур к строительным блокам сделать. Выложил на форум в скринах "Юмор"
Но! Текстуру растянуло. И по мере отдаления от построенного блока изображение текстуры не уменьшается, а наоборот увеличивается  lol
В чем грабли?
Посмотреть профиль manver00

0
№:16 от Diego_Kukava
936359
| Проверенный | в 13:04 (24 Ноября 2015)
Не получается! Видео бы. :(
Посмотреть профиль Diego_Kukava

0
№:15 от SensibleK
846084
| Проверенный | в 18:44 (23 Июля 2015)
В какой еще программе можно сделать? У меня photoshop cc, там normal map filter не пашет
Посмотреть профиль SensibleK

0
№:13 от LLLena516
797239
| Проверенный | в 18:44 (07 Августа 2014)
Спасибо, очень пригодился урок)
Посмотреть профиль LLLena516

0
№:11 от stalker77kos
583520
| Проверенный | в 00:10 (28 Сентября 2013)
нифига не понятно не ужели так тяжело записать на видео и сделать красивый видеоурок ведь сногим так нужен это урок ибо в нете  нет уроков  про альфа каналы и нормал мапы
Посмотреть профиль stalker77kos

+2
№:12 от langley
41092
| Модмейкер | в 19:28 (28 Апреля 2014)
Если уж такая статья непонятна, то вообще не стоит связываться с изготовлением карт нормалей и прочим. mellow
Посмотреть профиль langley

0
№:14 от Aksyonov
158006
| Модмейкер | в 20:08 (26 Октября 2014)
Поддерживаю ! совсем обленился народ, хоть что то то делайте что бы учиться по крайней мере не заставляйте разжевывать вам ещё тщательней и потом ещё отрыгивать всю информацию для лучшего усвоения в вашем желудочке.
Посмотреть профиль Aksyonov

0
№:10 от GoldNick
198133
| Проверенный | в 17:36 (10 Июня 2012)
Благодарю за статью good
Посмотреть профиль GoldNick

0
№:6 от prosto_BARAN
27729
| Проверенный | в 19:30 (07 Января 2012)
Может я чего то не понял, но судя по итоговому бампу, вы сделали все наоборот. У вас на бампе выступают впадины, а камни напротив - вмятые, почему то.
Вот как должен выглядеть бамп с вашей текстурой.
Посмотреть профиль prosto_BARAN

0
№:7 от Koxae
79952
| Ветеран | в 21:18 (07 Января 2012)
Вы знаете, сама иногда путаюсь, но в ТЕС карты нормалей инвертированы, например:
Посмотреть профиль Koxae

0
№:8 от prosto_BARAN
27729
| Проверенный | в 02:27 (08 Января 2012)
Хм, странно. Вообще то, по-хорошему бы проверить оба варианта бампа, как они в игре будут выглядеть. Утверждать что вы не правы я просто не могу, не будучи уверенным в том каким таким макаром игра использует карты нормальней.
Но, во всяком случае дам маленький совет. Если вы конечно делаете карты нормальней под что то кроме TES'a. Просто проведите инверсию изображения(Ctrl+I) а после применяйте фильтр normalmapping.

p.s. Симпотишная у вас аватарка :D
Посмотреть профиль prosto_BARAN

0
№:9 от Koxae
79952
| Ветеран | в 03:58 (08 Января 2012)
Спасибо! smile2
По-хорошему, да, надо бы. Как установлю Обливион, так и проверю (недавно систему переставляла, не всё нужное успела поставить ещё).
Посмотреть профиль Koxae

0
№:5 от RustWays
12827
| Журналист | в 15:20 (06 Января 2012)
Хах, я кистью крашу нормали))
Посмотреть профиль RustWays

0
№:1 от великий_ктулху
50892
| Проверенный | в 19:44 (04 Января 2012)
мне вот интересно как редактировать альфа канал для текстур ХЛ2.
если научусь, смогу очень многое, например убирать модификации с кастомного оружия.
есть какие нибудь гайды?
Посмотреть профиль великий_ктулху

0
№:2 от Koxae
79952
| Ветеран | в 23:18 (04 Января 2012)
Альфа-канал - он и в Африке альфа-канал. :) Если текстуру можно открыть в фотошопе, то никакой разницы не будет.
Посмотреть профиль Koxae

0
№:3 от великий_ктулху
50892
| Проверенный | в 12:05 (05 Января 2012)
как его перерисовать?
в том то и дел что хл-овский формат там не открывается.
Посмотреть профиль великий_ктулху

0
№:4 от Solid_Snake
5400
| Гражданин | в 21:34 (05 Января 2012)
Для .vtf текстур нужен плагин для фотошопа. Скачать/найти его очень легко.
Посмотреть профиль Solid_Snake
Помочь cайту

Набор в команду сайта
Наши конкурсы
Каталог файлов
Skyrim Special Edition [294]
TES V: Skyrim [4125]
TES IV: Oblivion [510]
Fallout: New Vegas [2200]
Fallout 3 [1086]
Fallout 4 [811]
Dragon Age: Origins [609]
Dragon Age 2 [245]
Dragon Age: Inquisition [166]
The Witcher 3: Wild Hunt [110]
GTA SA [96]
GTA 4 [131]
GTA 5 [42]
S.T.A.L.K.E.R. Зов Припяти [75]
S.T.A.L.K.E.R. Чистое Небо [44]
S.T.A.L.K.E.R. Тени Чернобыля [100]
Neverwinter Nights 2 [148]
Другие разделы

Подразделы:


Общая [34]
Adobe Photoshop [16]
Для мододелов [43]


Последние рецензии
Рецензия: «God of War 4»
Brain Out для тех кто скучает по 90-м
Frostpunk: в час Белого Хлада...
Assassin's Creed Origins: в полях Иалу
Assassin's Creed Origins: пески времени
FARCRY 5
KINGDOM COME: DELIVERANCE
Elex






Статистика
Онлайн всего: 369
Гостей: 204
Пользователей: 165




Вверх Вниз