Если вы художник, аниматор, веб-дизайнер или видеомонтажер, то наверняка периодически сталкиваетесь с проблемой поиска фона для композиции, текстуры для создания эффектов покрытия объектов и т. п. Для дизайнеров-любителей, не обладающих обширной библиотекой соответствующих текстур и к тому же не владеющих навыками создания собственных, этот вопрос становится еще злободневнее. Даже известный набор подключаемых модулей KPT на поверку оказывается не столь подходящим. За четыре года работы дизайнером-верстальщиком мне нередко приходилось прибегать к помощи KPT, но получить удовлетворительные результаты удалось только несколько раз, да и то с большим трудом, после чего, во избежание однообразия, я был вынужден перейти на натуральные текстуры.

Удачной находкой в подобной ситуации можно назвать растровый редактор The Gimp, особенно если вам необходимо быстро преобразовать некий сухой блок информации в броскую рекламу или симпатичную веб-страницу. А в случае, когда вашей задачей является покрытие трехмерных объектов текстурами, имитирующими реальные поверхности, найти конкурентов The Gimp весьма затруднительно.

В этой статье мы рассмотрим лишь малую толику возможностей этого уникального редактора: подключаемые модули для генерации текстур. Чтобы познакомиться с The Gimp более подробно, прочитайте статью «The Gimp — редактор растровой графики» (см. «Мир ПК», №9/01, с. 40).

Итак, поставьте перед собой обыденную для дизайнера задачу: вам требуются фоновые рисунки для украшения веб-страницы, текстуры для кнопок и текста с эффектами. Найти подходящую библиотеку в ближайшие полчаса не представляется возможным, а заказчик долго ждать не желает. Вам не остается ничего другого, кроме как нарисовать их самостоятельно. Но, к большому сожалению, у вас не возникает никаких идей, а за три месяца учебы в художественной школе любимый преподаватель не успел рассказать, как создать в Photoshop красивую текстуру, сочетая несколько, а порой и десятки различных спецэффектов.

И тут вы вспоминаете, что есть замечательный сайт gimp.org, где опубликован дистрибутив отличной программы The Gimp размером всего 7 Мбайт. Загружаете его из секции download, устанавливаете на своей рабочей машине (функционирующей под управлением Linux или Windows) и начинаете подбирать подходящую текстуру. (Кстати, The Gimp поставляется со всеми дистрибутивами Linux и устанавливается при инсталляции этой ОС.)

Рис. 1. Общее меню The Gimp

Первые эксперименты

В данной статье рассматривается работа The Gimp 1.2.4 в среде Windows. Хотя новейшие версии этого редактора уже перешагнули за номер 1.3.20, последней стабильной считается 1.2.5. Напомню, что в этом релизе The Gimp существует два типа меню — общее и главное. Так вот, в общее меню можно попасть из главного окна The Gimp, в котором располагается панель инструментов (рис. 1). Чтобы получить доступ к главному меню, содержащему полный набор инструментов, нужно как минимум создать новый документ и нажать правую кнопку мыши на его рабочем поле (рис. 2).

Рис. 2. Главное меню The Gimp

В общем меню есть только одно субменю для генерации текстур — Xtns?Script-Fu?Patterns. Аббревиатура Script-Fu означает, что генераторы написаны на языке сценариев. А из этого следует, что особо высокой производительности ожидать от них не стоит. Зато можно просмотреть исходный текст сценария и на его основе написать свой, что также немаловажно.

В меню Patterns вы обнаружите девять генераторов (см. рис. 1). Начнем по порядку.

3D Truchet. Это один из наиболее простых генераторов, он способен создавать лабиринтоподобное изображение из кольцевых элементов (рис. 3, б). Параметры 3D Truchet представлены на рис. 3, а.

Рис. 3. Параметры генератора 3D Truchet (а) и созданный с его помощью лабиринт (б)

Параметр Block Size определяет размер ячейки изображения (диаметр колец, из которых оно формируется). Thickness отвечает за толщину этих виртуальных колец. Когда величина данного параметра достигает половины значения Block Size, ободки сливаются и лабиринтная форма превращается в сеточную (рис. 4).

Рис. 4. Сетчатые текстуры, созданные с помощью генератора 3D Truchet

Следующие три параметра задают цвета фона (Background Color), ободка (Start Blend) и блика, придающего ему объемность (End Blend). Параметр Supersample теоретически должен выполнять сглаживание цветовых переходов, но в реальности никаких видимых эффектов при его переключении не наблюдается, а сглаживание выполняется в любом случае.

Последние два параметра генератора регулируют размер изображения путем определения количества ячеек по осям X и Y. Например, если вы зададите значения 15 и 30, то в результате получите вертикальную картинку с шириной, вдвое меньшей высоты.

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

Рис. 5. Текстура, созданная с помощью генератора Camouflage

Camouflage. Этот генератор создает текстуру, похожую на камуфляжную окраску (рис. 5). Особенность его реализации заключается в том, что нижний слой изображения закрашивается одним цветом, а в двух лежащих выше формируются пятна случайных формы и размера. Цвета фона и закраски пятен задаются параметрами Color 1, Color 2 и Color 3 соответственно (рис. 6).

Рис. 6. Параметры генератора Camouflage

Также можно задать размеры изображения и пятен в полях Image Size и Granularity соответственно. Флажок Smooth сглаживает края пятен (применяет к ним эффект Blur), а Flatten Image автоматически объединяет все три слоя в один. Кстати, не спешите его включать, ведь разбросанные по слоям пятна — хороший материал для последующей обработки эффектами.

Представьте, будто вам не нравится, что степень сглаживания пятен невозможно задать в окне настройки генератора. Решить эту проблему можно двумя путями: применить сглаживание к каждому слою с пятнами вручную либо открыть файл script_fu_camo_pattern в папке GimpShare Gimp1.2scripts и заменить в нем фильтр сглаживания на другой. Как и в случае с предыдущим генератором, форма пятен текстуры изменяется от запуска к запуску программы.

Рис. 7. Параметры генератора Flatland

Flatland. Это уже более мощный генератор, позволяющий получить великое множество абсолютно разных текстур (рис. 7), несмотря на простой интерфейс. Пользователям других приложений трудно будет поверить, что небольшой сценарий способен создавать изображения настолько не похожие друг на друга (рис. 8). Предусмотрена возможность задавать высоту и ширину генерируемого рисунка в полях Image Height и Image Width, а также уровень детализации Detail Level (т. е. указывать, насколько подробно обрабатываются мелкие возмущения). Позволительно устанавливать пропорции возмущений. К примеру, если их ширина и высота примерно равны, то форма возмущений стремится к округлой, если же нет — она вытягивается, в результате чего получаются эффекты, имитирующие шторы и даже волосы.

Рис. 8. Структуры, созданные с помощью генератора Flatland

Параметр Random Seed, в отличие от рассмотренных выше генераторов, здесь задается явно. Когда нужно воссоздать предыдущую форму возмущений, то достаточно оставить в этом поле прежнее число. Если же вы измените его хотя бы на единицу, то возмущения модифицируются до неузнаваемости.

Ну а теперь о самом главном. Вся гибкость Flatland скрыта в градиенте, которым генератор закрашивает рисунок. Сначала создается одноцветное, серое изображение с возмущениями от черного к белому. Потом к нему применяется текущий градиент (выбирается щелчком мыши в правом нижнем углу главного окна). Он заполняет картинку по следующему принципу: чем темнее цвет пиксела, тем левее берется точка в градиенте. Это правило позволяет предсказывать поведение генератора и заставляет его создавать нужные вам формы. Набор градиентов в The Gimp довольно внушителен. К тому же всегда допускается воспользоваться мощным градиентным редактором, вызывающимся двойным щелчком на любом градиенте библиотеки.

Land. Генератор представляет собой вариацию на тему Flatland, поэтому они во многом идентичны. Только градиент здесь можно выбирать прямо из окна параметров и к тому же появляется два дополнительных поля: Land Height и Sea Depth. Первое определяет высоту виртуальной земли, второе — глубину моря. Чтобы понять, как это работает, необходимо представить, будто вы создаете рельеф местности. Наиболее глубокие части моря будут окрашиваться цветом, находящимся с левого края градиента, уровень моря — оттенком, расположенным посередине, а высокогорье — тоном справа. Если глубина моря намного меньше высоты гор, то левый конец градиента расширится и переходы на глубине моря окажутся более плавными, а в горной части — более резкими.

Еще один нюанс генератора заключается в том, что после создания возмущений и их окрашивания применяется эффект bump-mapping, т. е. формируется рельефность поверхности, имитирующая блики, как на реальных покрытиях. Это делает генерируемую поверхность более соответствующей природному ландшафту. Рельефность зависит от указанной вами высоты: чем она больше, тем интенсивнее эффект bump-mapping, к тому же он применяется раздельно к горам и морю. За счет этого можно рисовать крутые горы и мягкие переходы для моря.

Render Map. Это еще одна вариация на тему Flatland, но без средств управления случайностью формы возмущений и ограниченными возможностями регулировки размеров изображения. Параметры Granularity и Behaviour задают детализацию карты и различаются только тем, что второй имеет всего два фиксированных пункта для быстрого выбора масштаба.

Swirle-Tile. Данный генератор способен создавать тайловые текстуры, края которых таковы, что при соединении двух изображений между ними не возникает резкой границы и происходит плавный переход от одного к другому. В The Gimp для более эффективного использования тайловых текстур можно применять шаблоны заливок (Pattern). Нужно просто сгенерировать рисунок и сохранить его в формате *.pat в папке ...Gimp sharegimp1.2patterns. После перезапуска The Gimp шаблон станет доступен в панели Pattern, вызываемой двойным щелчком на правой нижней кнопке панели инструментов (она находится над кнопкой выбора градиентов). Сделав новый шаблон активным, можно выполнить заливку фона изображения с помощью инструмента Fill (кнопка в виде лейки). Предварительно для задания параметров заливки необходимо дважды щелкнуть на этом инструменте, после чего откроется окно настройки, где следует активизировать флажок Pattern Fill.

Но вернемся к генератору. Принцип его работы заключается в том, что сначала создается некое изображение, состоящее из мелких серых пятен, затем к нему применяется эффект Swirl (скручивание), а потом — эффект рельефности (имитация освещения шероховатой поверхности). Соответственно этим действиям задаются параметры генератора: Depth — глубина рельефа, Azimuth — горизонтальный, а Elevation — вертикальный угол положения источника освещения, Blur Radius — степень сглаживания изображения после генерации, Height и Width — высота и ширина в пикселах генерируемой текстуры, Whirl Amount — величина скручивания, Roughness — контрастность пятен и, наконец, Background Color — цвет генерируемой текстуры.

Для успешной генерации тайловых текстур параметру Blur Radius лучше задавать значение 1, иначе у них будут сглаживаться края, и тогда пропадет плавный переход между ними.

Swirly (tilable). Данный генератор, как и предыдущий, создает тайловые текстуры. Он действует по такому принципу: сначала рисуется прямоугольник в центре текстуры, затем в ее углах изображаются четвертинки такого же прямоугольника и только потом в точках их соединения применяется эффект Swirl. Существенный недостаток генератора заключается в том, что он рисует только черным по белому.

В генераторе всего три параметра: Quarter size — размер квадрата; Whirle Angle — угол поворота текстуры эффектом Swirl; Numbers of times to Whirle — количество повторений эффекта Swirle. Причем два последних дублируют друг друга.

Trochoid. Это самый сложный по исполнению генератор, имеющий наиболее длинный сценарий. Не менее тяжел он и для понимания. А вот по полезности Trochoid, как и все математические эффекты, заслуживает не самую высокую оценку, поскольку позволяет генерировать только геометрические фигуры, к тому же с ограниченным набором вариаций.

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

Параметр Base Radius определяет внутренний радиус фигуры, Whil Radius — количество рисуемых примитивов и округлость итоговой структуры. Отношение первого параметра ко второму влияет на форму примитива. Чем оно больше, тем угловатее получаются примитивы и тем меньше толщина результирующей кольцевой структуры.

Параметр Pen Rad./ Wheel Rad. также задает округлость примитива, но только при больших значениях отношения Base Radius к Whil Radius. Кроме того, этот параметр регулирует толщину результирующей кольцевой структуры.

Hue Rate позволяет задавать цвета примитивов. По умолчанию генератор использует все цвета спектра, начиная с красного, проходя через желтый, зеленый, синий и заканчивая фиолетовым. Параметр Hue Rate позволяет задействовать только красные и желтые цвета, а синие и фиолетовые исключаются.

Использование мною параметра Erase before Draw никакого видимого результата не дало, возможно, в более свежих версиях The Gimp ситуация изменилась.

Последний параметр, Use Brush, дает возможность выбирать кисть для рисования примитивов, влияющую на толщину линий.

Truchet. Этот генератор — урезанная копия рассмотренного выше 3D Truchet. В нем отсутствует параметр, определяющий цвет блика, а значит, получаемой фигуре невозможно придать объемность.

Резюме

В этой статье мы рассмотрели далеко не все возможности генерации текстур в The Gimp. Но благодаря простоте ими могут пользоваться даже новички. Между тем в The Gimp также имеются генераторы, вставляющие текстуры в готовый документ; генераторы, создающие текстуры, смешивая их с фоновым изображением; фильтры, последовательное применение которых позволяет получить буквально любой желаемый результат, и многое другое.

С автором можно связаться по e-mail: vit@osp.ru.