Геометрические фильтры: «игрушечные» шейдеры Metal. Анимация процессинга.

Параллельные прямые не пересекаются, если вы не наклоняете одну из них или обе.
И да, никогда не пейте перед дифференцированием!
(Народная мудрость)

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

Читать далее

Реклама

Как написать свой Metalagram. Color Lookup Tables или CLUT-ы в Metal

Смоки, тут не Вьетнам. Это — боулинг. Здесь есть правила.
Уолтер Собчак/Большой Лебовски

В самом первом посте этого блога я обещал, что мы напишем свою версию приложения фото-камеры с фильтрами, что-то вроде Instagram-а или встроенной Камеры iOS. В 100500й раз. Приложение будет конечно же круче в тоже самое количество раз. Все дело в количестве припоя кода которого мы нальем в программу, что-бы сделать её работающей. Его практически не будет. Сомневаюсь, что у отцов-основателей Instagram были наши сегодняшние возможности. А еще у нас будут большие файлы формата Cube LUT Specification Version 1.0. В общем пишем свой Instagram!

Приложение будет выглядеть как-то так:

Metalling App

Вот сегодня это и сделаем: возьмем в руки отвертку и паяльник XCode и напаямем накодируем кода: быстренько обернем Metal в свой фреймворк и сосредоточимся, в итоге, исключительно на разработке фильтров не отвлекаясь на детали. А еще проще использовать готовый через cocoapods: DPCore3. Эта штука находится еще на стадии активных доработок, но вполне сгодится для использования в качестве слоя абстракции уменьшающего количества кода на единицу  времени программиста. Но обо всем по порядку.

Читать далее

Первый «настоящий» метал-api-ческий фильтр

Этот пост не для опытных «металлистов», было бы дерзко сразу вот так вот начать публиковать готовый код фильтров с минимумом комментариев. Поэтому будет много текста и вилами по воде, но зато подробно и поможет (надеюсь) осознать красоту и простоту идеи. Ко всему прочему, мне и самому интересно на сколько я могу низко пасть объяснить простым языком неофиту всю глубину падения прекрасного мира Metal. Во-вторых: все мне говорят я понимаю, что последовательное изложения материала упорядочивает информацию. И это важно.

Для первого раза выберем какой-то фильтр без объяснения что-это, зачем, какие фильтры бывают в природе и бывают ли только фильтры. Просто будем знать, что иногда с изображением можно выполнить какой-то трюк и его изменить, испортить, улучшить, или вообще синтезировать другое. Главная тема показать как с помощью iOS Metal API можно этого добиться. Никакой ловкости, только рутинное вбивание кода на клавиатуре. Начнем с классики жанра: фильтра управления насыщенностью изображения.

Читать далее