Skip to content

Latest commit

 

History

History
159 lines (82 loc) · 27.7 KB

File metadata and controls

159 lines (82 loc) · 27.7 KB

Инструмент Interactive Mesh Fill в CorelDRAW

Дата публикации: 02.11.2012
Автор: Sokolovich

Gradient Mesh Fills, или проще говоря, Градиентные Сетки (или совсем просто – меши) являются наиболее мощным и универсальным инструментом для моделирования сложных цветовых переходов. Кроме того, что они могут включать множество различных цветов, а градиенты между ними иметь самую произвольную форму, к ним вдобавок совершенно свободно можно применить любой из доступных алгоритмов наложения прозрачности. Все это делает объекты данного класса исключительно полезными и порой почти незаменимыми при создании сложных иллюстраций с претензией на реализм. Потому неудивительно, что рано или поздно руки любого, кто пытается всерьез работает с CorelDRAW, начинают сами собой тянуться к кнопке Interactive Mesh Fill Tool, спрятанной в самом низу панели инструментов под пиктограмкой градиентной заливки.

Разумеется, я тоже не мог пройти мимо этой темы. Поначалу, прямо скажем, механизм действия инструмента Interactive Mesh Fill казался мне довольно капризным и неудобным. Но с одной стороны помог некоторый опыт борьбы с полигональными сетками в 3ds max (кстати сказать, в трехмерных редакторах обычно в том или ином виде присутствует функция Vertex Paint по смыслу сходная с Gradient Mesh), а с другой – оказалось, что на самом деле ничего особо страшного тут нет, и если соблюдать определенные правила, то результат может превзойти самые смелые ожидания. В общем, довольно скоро я в этой теме освоился и теперь вот решил поделиться некоторыми своими наблюдениями. Может даже, кому-то из начинающих (и не только) они окажутся очень кстати.

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

Инструмент Interactive Mesh Fill в CorelDRAW

Pin-up Stewardess, август 2008

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

Способы создания градиентных сеток. Часть 1.

Градиентные сетки можно получить двумя способами:
а) преобразовать в меш существующий контур.
б) построить нужный контур, взяв за основу шаблон в виде простой геометрической фигуры, конвертированной в меш с предустановленным количеством ячеек. Так как ячейки всегда имеют прямоугольную форму, то и фигурой проще всего назначать прямоугольник.

Рассмотрим сначала первый вариант. Для этого попробуем конвертировать в градиентную сетку правую руку Стюардессы. Вызываем команду Interactive Mesh Fill Tool (горячая клавиша по умолчанию – M) или разыскиваем соответствующую кнопку в панели инструментов. Выставляем в панели свойств формат сетки равным 4х4 ячейки и кликаем курсором на контуре руки.

Инструмент Interactive Mesh Fill в CorelDRAW

Инструмент Interactive Mesh Fill в CorelDRAW

Результат автоматического преобразования не внушает особого оптимизма…

Инструмент Interactive Mesh Fill в CorelDRAW

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

Кстати: Если поворачивать несимметричные объекты интерактивно (с помощью указателя), центр вращения смещается вместе с центром координат такого объекта. Это приводит к тому, что при последующем развороте в обратную сторону его исходную позицию приходится отлавливать вручную. Чтобы этого не случилось, перед поворотом следует задать центр трансформации. Для этого нужно либо выделить объект двойным кликом и вручную же сдвинуть центр вращения в новую позицию (которая после этого сохраняется при последующих поворотах), либо воспользоваться палитрой Transformation. Здесь выделяем контур, снимаем галочку в окошке Relative Center, задаем угол поворота (Angle) и жмем Apply. После этого центр вращения объекта также фиксируется в одном положении.

Инструмент Interactive Mesh Fill в CorelDRAW

Инструмент Interactive Mesh Fill в CorelDRAW

Применяем Interactive Mesh Fill Tool еще раз с теми же установками. Число ячеек в момент создании сетки можно изменять интерактивно с помощью счетчика на панели свойств.

Инструмент Interactive Mesh Fill в CorelDRAW

В этом месте опять придется сделать небольшое отступление насчет трансформации. Дело в том что CorelDRAW по каким-то причинам не считает нужным отслеживать угол поворота градиентных сеток в панели свойств объекта. Поэтому наиболее простой способ вернуть объект точно в исходное положение заключается в том, чтобы запомнить значение в градусах, отображаемое в окошке угла поворота на панели свойств перед преобразованием контура в меш, и после генерации сетки вбить то же самое значение, но с противоположным знаком в соответствующем окошке палитры Transformation. (Если поворот на предыдущем шаге был сделан в один прием, достаточно поменять значение Angle, которое все еще значится в указанном окошке на противоположное и нажать Apply).

На следующем этапе имеет смысл сразу же упростить сетку убрав лишние опорные точки. К ним как правило относятся дополнительные узлы (Node), которые в отличии от основных (Intersection) не образуют пересечения линий и обычно не несут особой смысловой нагрузки – им нельзя назначать цвет и в процессе правки геометрии они скорее мешают. Исключение могут составлять дополнительные узлы расположенные на внешних линиях сетки. Они определяют форму объекта и потому их удаление не всегда целесообразно. Узлы расположенные на внешних линиях угловых ячеек являются их неотъемлемым элементом (поскольку каждая ячейка должна включать 4 вершины) и потому не могут быть удалены. Им также можно назначать цвет.

Инструмент Interactive Mesh Fill в CorelDRAW

Инструмент Interactive Mesh Fill в CorelDRAW

В процессе моделирования сетки можно добавлять новые узлы. Двойной клик на линии или внутри ячейки сразу создает новое пересечение (Intersection), а после одинарного появляется маркер вставки. Вызвав правой кнопкой контекстное меню можно выбрать тип создаваемого узла – основной или дополнительный. Вновь создаваемые линии ложатся параллельно существующим.

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

Инструмент Interactive Mesh Fill в CorelDRAW

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

Инструмент Interactive Mesh Fill в CorelDRAW

Теперь можно приступать к ее раскрашиванию.

Работа с цветом.

В ходе освоения методов наложения цвета на градиентные сетки особо интересных открытий зафиксировано не было. Цвета можно применять как к отдельным узлам, так и к целым ячейкам. Образцы цвета можно брать либо с помощью пипетки (в режиме Sample Color) с исходного изображения (если таковое имеется), либо из заранее составленных пользовательских палитр, или получать путем смешения компонентов в палитре Color. Присвоение цветов выбранным элементам происходит обычным для всех других объектов способом. Порядок действий во многом зависит от сложности сетки. Если количество ячеек в ней относительно небольшое, можно вначале построить сетку полностью и затем приступить к ее раскрашиванию. Если цветовых переходов много, удобнее бывает сначала наметить общую форму сетки и присвоить цвета ее ключевым узлам, а затем раскрашивать дополнительные узлы и ячейки в процессе их добавления. Общее правило такое – чем сетка проще, тем лучше. Необязательно создавать дополнительные узлы там, где можно обойтись настройкой кривизны линий с помощью управляющих элементов уже существующих. В процессе редактирования нужно следить за тем, чтобы линии не перехлестывались и не имели резких «заломов».

Инструмент Interactive Mesh Fill в CorelDRAW

Инструмент Interactive Mesh Fill в CorelDRAW

Подобным образом можно моделировать как простые объекты…

Инструмент Interactive Mesh Fill в CorelDRAW

Так и сложные. (Верная смерть для всех ленивых и неусидчивых).

Инструмент Interactive Mesh Fill в CorelDRAW

Кстати, меши как инструмент для изображения складок ткани – просто вне конкуренции по удобству и гибкости использования.

Любопытный нюанс: Всем градиентным сеткам в момент создания присваивается цветовая модель CMYK, даже если исходный объект имел перед этим заливку в RGB. При попытке присвоить отдельным элементам такой сетки цвет в модели RGB, происходит автоматическая подстановка ближайшего аналога в CMYK, в чем можно легко убедиться взяв пробу цвета пипеткой и заглянув в палитру Color. Собственно, это заметно и невооруженным глазом. Если все же работа выполняется в RGB, то единственный (известный мне) способ привести меш к нужному цветовому пространству заключается в применении заливки одним RGB цветом ко всем ячейкам сразу. Для этого выделяем все узлы инструментом Interactive Mesh Fill Tool и назначаем им нужный цвет любым из указанных выше способов.

Способы создания градиентных сеток. Часть 2.

Теперь рассмотрим более сложный пример построения сетки. Для этого попробуем конвертировать в меш такой достаточно непрямолинейный объект как губы Стюардессы.

Инструмент Interactive Mesh Fill в CorelDRAW

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

Инструмент Interactive Mesh Fill в CorelDRAW

Поэтому мы пойдем другим путем, более привычным для тех кто знаком с трехмерным моделированием. Если правка неудачной геометрии объекта грозит отнять много времени и сил, то проще будет создать градиентную сетку с необходимыми нам параметрами с нуля. За ноль возьмем обычный прямоугольник. В панели свойств инструмента Interactive Mesh Fill зададим формат сетки равным например 8х3 и применим его к выбранному объекту:

Инструмент Interactive Mesh Fill в CorelDRAW

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

Инструмент Interactive Mesh Fill в CorelDRAW

Теперь можно приступить к расстановке узлов по местам.

Инструмент Interactive Mesh Fill в CorelDRAW

По мере расстановки и добавления новых узлов сетка принимает вполне стройный и логичный вид. Направление линий соответствует основным осям объекта.

Инструмент Interactive Mesh Fill в CorelDRAW

Здесь нам вновь может понадобиться контур губ, оставшийся не у дел на предыдущем этапе. Во-первых его можно использовать как направляющий для более точной расстановки опорных узлов. А во-вторых им можно воспользоваться в качестве контейнера для размещения внутри него получившейся сетки (Effects > Power Clip > Place Inside Container). Данный способ имеет как свои преимущества так и недостатки. С одной стороны не надо особо тщательно расставлять узлы сетки по периметру объекта, поскольку края контейнера маскируют все ее неровности, и если нужно немного изменить внешнюю форму объекта, то для этого достаточно подправить один или два узла внешнего контура не затрагивая геометрию ячеек. С другой, правда, градиентную сетку внутри контейнера не очень удобно раскрашивать, поскольку в момент редактирования нельзя оценить как ее цвета сочетаются с окружающим фоном. В данном случае я этим приемом пользоваться не стал, предпочтя большую наглядность.

Инструмент Interactive Mesh Fill в CorelDRAW

Теперь для сглаживания формы все линии можно преобразовать обратно в кривые, а узлы соответственно сделать плавными.

Инструмент Interactive Mesh Fill в CorelDRAW

Инструмент Interactive Mesh Fill в CorelDRAW

В итоге автоматического сглаживания получаем вот такую структуру:

Инструмент Interactive Mesh Fill в CorelDRAW

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

Некоторые узлы делаем заостренными, чтобы с их помощью добиться эффекта складок.

Инструмент Interactive Mesh Fill в CorelDRAW

То же самое проделываем с верхней губой. Затем берем помаду… Ну и дальше в ринципе все очень наглядно.

Инструмент Interactive Mesh Fill в CorelDRAW

Тем же способом были выполнены ножки Стюардессы…

Инструмент Interactive Mesh Fill в CorelDRAW

Комбинирование градиентных сеток.

При всей своей универсальности меши имеют ряд естественных ограничений. Так, например максимальный формат сетки равен 50х50 ячеек. Основные опорные узлы (Intersection), в отличии от вертексов в программах трехмерного моделирования, могут соединять строго определенное количество линий – либо 3 (для узлов лежащих на внешних границах сетки), либо 4 (для всех остальных). Узлы нельзя произвольно разбивать, соединять и т.п. Вместе с тем при создании реалистичных иллюстраций иногда возникает необходимость моделирования сложных поверхностей, с переменным уровнем детализации. Таких, например, как человеческое лицо, где относительно плоские участки (щеки или лоб) соседствуют с рельефными (глазные впадины, веки, нос, уши). Градиентные сетки подходят для решения таких задач как нельзя лучше. Просто не везде их применение оказывается одинаково удобным. В принципе ничто не мешает разбить любой участок на какое угодно количество ячеек. Но проблема заключается в том, что при этом в сетку добавляется масса новых линий, которые по причине общей линейности ее структуры распределяются по всем участкам (в т.ч. даже там, где они нужны меньше всего). В итоге это приводит к чрезмерному усложнению сетки и делает ее плохо управляемой. Задача изобразить лицо посредством одной градиентной сетки сама по себе выглядит привлекательной, но не всегда себя оправдывает. В данной работе я опробовал другой способ, который можно назвать «моделированием патчами». В отличии, например, от 3ds max здесь их нельзя объединить в одно целое, но свою прямую задачу по созданию участков сетки с разной структурой они выполняют успешно. Работая над портретом я решил разделить голову Стюардессы на 6 фрагментов, каждый из которых содержал бы по возможности только необходимое количество ячеек. Не стану утверждать, что все получилось именно так, как было задумано, но в целом итоги эксперимента были признаны удовлетворительными.

Инструмент Interactive Mesh Fill в CorelDRAW

Инструмент Interactive Mesh Fill в CorelDRAW

Инструмент Interactive Mesh Fill в CorelDRAW

Инструмент Interactive Mesh Fill в CorelDRAW

«Патчи» располагались так, что частично или почти полностью перекрывали друг друга. Ключевым моментом, конечно же, стала маскировка стыков отдельных фрагментов. В целом задача оказалось не слишком сложной – просто потребовалось правильно подобрать и распределить цвета на границах сеток (что правда местами привело к появлению незапланированных узлов). Глаза, брови и рот, разумеется, были выполнены как отдельные объекты и помещены на лежащий выше слой. Костюм Стюардессы, к слову сказать, тоже был скроен по этому принципу. Но там задача склеивания отдельных фрагментов облегчалась наличием вшитых кантиков и прочих естественных швов маскирующих линии стыка.

Инструмент Interactive Mesh Fill в CorelDRAW

Не знаю как Вам, а мне лично результат понравился и даже вдохновил на новые свершения. К написанию вот этой статьи, например…

© V_ Sokolovich 2008
Специально для CDRPRO.RU