Создание текстуры с использованием альфа канала в формате DDS

Часто возникает необходимость создать такую текстуру, в которой определённая часть изображения является прозрачной, например, при текстурировании забора замысловатой формы или кованого балкона. Моделировать такие узоры достаточно трудоёмко. Для упрощения модели используются текстуры с альфа каналом.

Сначала разберёмся с понятием канала. Каждый канал представляет одну составляющую цветовой модели. Каждое пиксельное изображение представляет собой набор каналов, число которых соответствует числу составляющих цветовой модели. Если исходить из этого определения, то получается, что в зависимости от цветовой модели изображения, число каналов в каждом изображении различно. И это действительно так. Например, в цветовой модели RGB только три канала, по одному на каждый основополагающий цвет — Красный, Зеленый и Синий. В цветовых моделях HSB и Lab тоже по три канала (H, S, B и L, a, b). А в цветовой модели CMYK четыре канала, по числу основополагающих цветов — Голубой, Пурпурный, Желтый и Черный. В изображении, основанном на цветовой модели Grayscale (Градации серого) всего один канал. По одному каналу имеют также Bitmap (Битовый формат), Duotone (Дуплексы) и изображения с Indexed Color (Индексированные цвета).

Все эти каналы называются цветовыми. Они предназначены для хранения цветовых параметров каждого изображения. Цветовые каналы создаются автоматически при создании изображения согласно выбранной цветовой модели. Все изменения на изображении немедленно фиксируются в соответствующих цветовых каналах.

Каждый канал можно представить себе как тонкую, полностью прозрачную кальку, налагаемую друг на друга, с определенными параметрами, в результате чего получается полноцветное изображение. Каждый канал можно отключать и делать невидимым. С каждым каналом можно работать самостоятельно и независимо от других каналов в этой же цветовой модели.

Кроме основных цветовых каналов в приложении Adobe PhotoShop можно создавать дополнительные каналы. Общее число каналов не может быть больше 24. Дополнительные каналы называются альфа-каналами (alpha channels). Каждой точке каждого канала соответствует 8 бит данных, или на каждый пиксель каждого канала (за исключением черно-белого штрихового изображения) отводится по одному байту. Отсюда можно сделать вывод, при работе с изображением не рекомендуется создавать много альфа-каналов, так как это ведет к увеличению объемов файла.

Для работы с каналами предусмотрена специальная палитра Channels (Каналы). Для включения или выключения каждой строки в палитре Channels (Каналы) имеется специальный значок в виде открытого глаза (). Этот значок располагается в специальном поле, которое расположено в левой части каждого канала или режима. Наличие этого значка говорит о том, что данный канал или режим включен и видим. Отсутствие значка «глаза» говорит о том, что данный канал или режим выключен и его не видно на изображении. Одновременно все цветовые каналы и режим отключить невозможно, так как хотя бы один канал обязательно останется включенным и активным.

В палитре Channels (Каналы) создается по умолчанию столько каналов, сколько их имеется в данной цветовой модели, на основе которой создается изображение +1. Этот дополнительный канал называется совмещенным каналом. Этот канал, который мы назвали +1, является общим полноцветным режимом, который объединяет все входящие в этот режим каналы и который мы видим в конечном результате на изображении. Совмещенный канал отображается только тогда, когда все цветовые каналы являются видимыми. При включении пиктограммы глаза () у совмещенного канала все остальные цветовые каналы также автоматически включаются. При выключении видимости хотя бы у одного канала, видимость совмещенного канала также отключается, так как это нарушает его целостность и неделимость.

Исключением из этого правила добавления одного совмещенного канала являются два цветовых режима — Grayscale (Градации серого) и Indexed Color (Индексированные цвета). В этих моделях всего один канал, поэтому этот единственный канал в любом случае будет являться совмещенным. При работе с этими моделями просто нет смысла создавать копию этого же единственного канала.

Альфа-каналы (alpha channels) нужны, прежде всего, для хранения выделений на изображении. Например, создали Вы выделение. Проработали с ним. Затем пришлось выполнить операцию вне этого выделения. Затем снова пришлось вернуться к предыдущему выделению. Но сделать этого невозможно в принципе: нельзя с точностью до 1 пикселя выделить два раза одно и то же. Как бы Вы не выделяли, это выделение будет хотя бы немного, но другое. Поэтому создав сложное выделение, его можно сохранить в альфа-канале, а затем использовать это выделение не только в этом изображении, но и во всех изображениях.

Рассмотрим создание текстуры с альфа каналом на примере моделирования узорчатой кованой арки под козырьком крыльца. Для этого используем фотографию и сделаем видимыми металлические элементы арки, а все остальное должно быть прозрачным, затем сохраним текстуру в DDS формате.

Рис. 3.32 Кованая арка 1. Создадим новый документ с размерами 1024x1024 px. На нём будем размещать подготовленные изображения, а по окончании работы сохраним этот файл как текстуру в формате dds. Откроем фотографию крыльца в Adobe Photoshop (Рис. 3.32.).
Рис. 3.33. Обрезка фотографии с помощью инструмента Crop 2. Обрежем с помощью инструмента Crop фотографию (Рис. 3.33), оставив только арку. Параметры обрезки в нашем примере: width 256 px, hight 128 px, разрешение должно быть кратно степени 2. Для удобства создадим ещё один слой цвета, контрастного арке, например, светло-жёлтого, чтобы в дальнейшем были видны все недочёты. Поместим слой под изображение.
3. Теперь выделим те части изображения, которые не должны быть видны (Рис. 3.34). Сделать это можно с использованием любых инструментов выделения, например: магнитное лассо , волшебная палочка и др. Можно использовать булевы операции: объединение, пересе­че­ние, вычитание , а также
Рис. 3.34. Выделение невидимых частей изображения
инструмент инвертирова­ния выде­ления: Select – Inverse. Удалим фон, оставив только кованную арку. Те места, где видны недочёты в виде обрамления цвета фона, можно исправить инструментом Ластик (Eraser Tool). Для этого снимем выделение и аккуратно, по необходимости меняя диаметр ластика, пройдём по краям, стирая неровности. Рис. 3.35. Создание альфа канала
4. Чтобы снова выделить арку, нужно выделить содержимое слоя, где она расположена, для этого с зажатой клавишей ctrl нужно щёклнуть по иконке слоя. Перенесём выделенную арку в новый документ, в котором будут располагаться все текстуры с альфа каналом. В новом документе не снимая выделения, переходим на вкладку каналы (Chan­nels) и создаём новый Рис. 3.36. Закрашиваем выделение белым цветом

канал с помощью кнопки «Создать новый канал» (Create new channel) (Рис. 3.35). Альфа канал будет создан автоматически для выделенной области. Изображение этого канала по умолчанию будет чёрным.

5. Теперь выделенную часть изображения нужно закрасить белым цветом (Рис. 3.36), для этого можно использовать инстумент кисть (Brush) большого диаметра. В нашем примере размер кисти равен 60 px. Закрашиваем выделение, находясь во вкладке каналы. Снимаем выделение (Ctrl+D). Таким образом, та часть изображения, которая закрашена белым, будет видна, а та часть, которая осталась чёрной, - не видна (Рис. 3.36).

6. Переходим во вкладку слои. Если слоёв больше одного, объединяем их командой Merge Layer: выделяем слои с помощью клавиши Ctrl – ПКМ - Merge Layer. Затем ПКМ по единственному слою - выбираем «выполнить сведение» («flatten image»). Сохраняем текстуру в формате «dds». В окне «Save As» выбираем формат DDS и ставим галочку напротив Alpha Channels. Далее в окне NVIDIA выбираем параметры, как показано на рисунке 6.6. Сохраняем в формате DXT5 ARGB 8 bpp / interpolated alpha (Рис. 3.37).

Рис. 3.37. Параметры сохранения текстуры

По умолчанию возможность сохранять в этом формате в Adobe Photoshop может отсутствовать. Чтобы это исправить, нужно установить плагин: поместить файл dds.8bi в директорию \Program Files\Adobe\Adobe Photoshop \Plug-Ins\File Formats\dds.8bi.

7. Наложим полученную текстуру на модель козырька крыльца, выделив предварительно две построенные плоскости (рис.3.25), таким же образом, что и обычную текстуру (см. пункт 3.3). Видимость альфа канала будет включена автоматически (Рис. 3.38).

Рис. 3.38. Применение текстуры с альфа каналом
Если предполагается, что текстура будет видна не с одной стороны, то необходимо сделать её двухсторонней. В данном случае такая текстура нужна для поручней крыльца.
Рис. 3.39. Отображение нормалей

Создадим плоскость по форме поручней, применим к ней текстуру. Включим отображение нормалей, чтобы определить, с какой стороны будет видна текстура. Для этого выберем режим выделения полигонов, затем в окне свойств объекта во вкладке Mesh Component Display отметим «галочкой» Display Normal (Показать нормаль), а в Normal Type (Тип нормали) поставим face. Для каждого полигона плоскости будет показана нормаль – тонкая зелёная прямая, перпендикулярная поверхности. Если направление какой-либо нормали нужно изменить на противоположное, то необходимо выделить этот полигон, затем в главном меню выбрать Normals – Reverse.

Теперь отразим всю плоскость поручня, чтобы текстура отображалась и с другой стороны. Для этого выделяем весь объект, затем в главном меню выбираем Edit – Dublicate, плоскость будет продублирована. Затем поменяем направление нормалей у всех полигонов новой плоскости. Теперь текстура с альфа каналом будет отображаться с обеих сторон.
Рис. 3.40. Отображение текстуры с альфа каналом

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: