DataLife Engine > --- > Грамотно антиалиасим иконки

Грамотно антиалиасим иконки


17 мая 2009. Разместил: compaz
Итак, при создании иконок столкнулся с проблемой ужасного растрирования краев иконок. У меня выработался некий способ борьбы с этим явлением, которым я и хочу сейчас с вами поделиться.
Например вот так отвратительно выглядит отрендеренная иконка, если границы объектов в ней расположены под небольшим углом к пиксельной сетке.


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

Итак, подопытную иконку я смоделировал в 3DS Max, что подразумевает некоторые подготовительные операции.Опишу их вкратце.
Сцену я рендерю на черном фоне и с маской, для того чтобы в итоге получить отражение.


Сохраняю картинку в формате png 24bit с альфа-каналом.
Открываю ее в фотошопе.


Подложив белый фон для наглядности, удаляю командой Remove Black Matte черную каемку, доставшуюся от черной подложки.


При этом "улетает в трубу" и отражение, которое я восстанавливаю исторической кистью.
Готово!


Теперь можно приступить к основному блюду - антиалиасингу.
На основе слоя с иконкой создаем выделение и сохраняем его, после чего снимаем выделение.
Теперь дублируем слой с иконкой несколько раз (я дублирую 6-10 раз) и сливаем все дубликаты и оригинал в один слой. Это дает нам максимально жесткий край.


Теперь на основе сохраненного выделения создаем маску для этого слоя. В итоге имеем иконку, выглядящую как оригинальная, но уже с маской.


Выбираем маску и blur'ом размываем ее на 0,2 пикселя, что дает нам чуть более расширенную градацию серого. Теперь инструментом Curves редактируем эту самую градацию серого, фактически играя с жесткостью края.


Таким образом можно сделать край совсем мягким или совсем жестким.
Вот мой результат.


И это не искажая саму картинку фильтрами резкости/размытия.

На этом все.
Творческих успехов!