Альфа-канал из 3D и маски в Photoshop
Урок Adobe Photoshop. Автор: LoopAll.
Сегодня мы рассмотрим работу с альфа-каналом и основами работы с масками в графическом редакторе Adobe Photoshop. Как при рендеринге в 3D Max получить изображение с альфа-каналом мы рассматривали в предыдущем уроке - если вы его еще не читали и не знаете, о чем идет речь, советую все-таки начать с него, а затем уже переходить к изучению данного урока.

Начнем с того, что создадим в 3D Max какую-нибудь сцену на белом фоне и отрендерим ее в любом удобном для вас разрешении с альфа-каналом, сохранив в формат TIF (8 бит, store alpha channel) (как это сделать можно почитать в предыдущем уроке). Полученный файл открываем в программе Adobe Photoshop (версия не имеет значения, примеры для урока сделаны в версии программы CS3).

Если вы всё сделали правильно, то в открытом файле в панели Channels (каналы) вы должны увидеть пять каналов: RGB (смесь из красного, зеленого и синего каналов), Red (красный канал), Green (зеленый канал), Blue (синий канал) и Alpha 1 (альфа-канал, в котором содержится маска прозрачности для нашей дальнейшей обработки). В панели layers (слои) находится один-единственный слой с названием Background, который по умолчанию является заблокированным (видите закрытый замок напротив его названия?).

Для снятия блокировки (а это необходимо для следующего применения к слою маски) дважды кликните по названию слоя - появится окошко New layer (Новый слой), в котором можно задать основные свойства. В окошке можно ничего не менять, а просто нажать Ok (Enter). После этого слой Background автоматически переименовывается в Layer0 (если вы не задали другое имя) и становится разблокированным.
Теперь настало время применить к нему маску прозрачности, которую мы создадим из нашего альфа-канала. Для этого переходим в панель Channels (каналы) и, удерживая нажатой клавишу Ctrl (Command на Mac), кликаем по пиктограмме альфа-канала Alpha. При этом создается выделение на основание альфа-канала, которое вы увидите на вашем изображении (если выделение будет незаметным или невидимым - программа предупредит вас об этом).

Теперь, не снимая выделения, нажимайте кнопку Add layer mask (Добавить маску слоя), которая находится в нижней части панели Layers (Слои). При этом возле пиктограммы слоя Layer0 в панели Layers (Слои) появится еще одна пиктограмма маски этого слоя, связанная с ней цепочкой. Фон изображения станет прозрачным.
В результате этих несложных действий, которые, при желании можно записать в скрипт, чтобы не проделывать их каждый раз заново, мы получили слой с маской прозрачности, сделанной из альфа-канала, сохраненного при рендеринге в 3D Max.
Как вы, наверное, заметили, маска может содержать только черный цвет, белый и оттенки серого. На этом и построен её принцип действия. Ниже показано на примере одного и того же изображения с разными масками, как цвета маски влияют на прозрачность. При полностью белой маске изображение становится полностью видимым, при черной - полностью прозрачным, при серой - полупрозрачным (при этом степень прозрачности зависит от насыщенности серого цвета). Если же в маске присутствуют и черные и белые цвета и оттенки серого - прозрачность каждого пикселя слоя с изображением будет зависеть от цвета соответствующего пикселя маски данного слоя. Отсюда единственное правило при работе с масками: белый - видимый, черный - невидимый. Ниже показаны несколько примеров влияния маски на прозрачность изображения для большей наглядности:

Маска - это еще один канал (после RGB каналов), в котором содержится информация о прозрачности. Каждый слой может содержать одну маску (вернее, две, но векторную маску Vector Mask мы в данной статье не рассматриваем). С маской можно работать практически точно так же, как и с изображением слоя - можно применять различные корректировки цвета (Levels, Curves, Brightnest/Contrast и т. п.), по ней можно рисовать кисточкой, карандашом, накладывать градиент и т. п. При этом вы сразу видите результат. Для этого достаточно кликнуть по пиктограмме маски рядом с пиктограммой слоя в панели Layers (Слои). Чтобы вернуться в обычный режим работы с изображением слоя точно так же кликаем по пиктограмме слоя в этой же панели.
Чтобы сохранить рабочий файл с масками и слоями используйте родной формат Фотошопа PSD или TIF. А для того, чтобы сохранить результат работы в JPEG-формат или любой другой - объедините все слои командой Layer > Flatten image и сохраняйте в нужном формате.
Ну и главный вопрос, который может у вас возникнуть: зачем все эти сложности, если можно просто сделать выделение из альфа-канала, удалить всё ненужное или просто стереть ластиком? А затем, что при использовании маски вы никак не влияете на исходное изображение и в любой момент можете исправить любую ошибку при изоляции, не возвращаясь при этом на много шагов назад. Маски можно копировать, сохранять, редактировать, из них легко делать выделение. Они дают очень широкие возможности при работе с фотографиями. Кстати, лично я не знаю другого способа, как аккуратно изолировать волосы от фона без применения масок - с маской это делается практически на автомате.
Здравствуйте!!!Помогите пожалуйста.
В альфа-канале выделяется только объект,без тени как у Вас на примере чайника и карандашей.Подскажите как можно это исправить,а то вид как обрубленные... буду очень благодарен...
Очень трудно ответить, не видя результата. Возможно, у вас слишком слабая тень - попробуйте поэкспериментировать с командой Levels (Уровни), применив её к маске (альфа-каналу). Если тень есть - она проявится. Если это не поможет - скорее всего вы пропустили что-то по ходу уроков.
Видимо пропустил какой-то пункт по ходу урока.Попробовал с самого начала,все палучилось...Огромное Вам спасибо и творческих успехов!!!
Если в альфа канал при рендеринге включиьт еще и тень то все равно выделение получается с рваными краями потомучто абсолютно ровный переход от тени к белому получить в мксе очень сложно или это потребет очнь много времени (VRAY). Как можно обработать рендер так чтобы тень имела ровный градиент и не получать реджектов за прохою исоляцию обекта?
Качество изоляции тени напрямую зависит от настроек рендера. Скорее всего, у вас они сильно занижены, если выделение получается с рваными краями. Если вы покажете пример (фрагмент) рендера и изоляции, которая получилась в результате в размере 100% - можем попробовать найти проблему.
Блин наконец нашелся кто разжевал по полкам всё таким как я, пасиб
Вот для таких комментариев стоило написать этот урок! Спасибо за отзыв, evgen!
Может есть ссылка на урок в максе стеклянной бутылки наполненной водой, что б с альфа также можно было использовать, что бы стекло с водой отдельно можно было использовать? буду безгранично благодарен ;)
Evgen, посмотрите урок http://microstocker.com.ua/statyi_uroki/3d/38/ Там практически то, что вам нужно ;) Если нужен будет урок и есть время подождать - опишите конкретнее задачу - будет вам урок :)
Пасиб за внимание :). Суть такова что нужно бутылка изобразить стеклянную бутылку, наполненную водой, и за счет бликов сделать на выходе альфаканал, который на плоскости можно будет прикладывать, притом что б похоже на стекло было с резкими белыми бликами, а не как у меня получаеца призрачное серое нечто, а тот урок я прошел :) про стекло там нет...
упс, слово "бутылка" не в счет :)