Выпущен модуль GIMP plug-in Toy для имитации тильт-шифта

Рюдигер Шнайдер выпустил первую публичную версию расширения Toy, которое упрощает имитацию тильт-шифта, обычно сводящуюся к созданию эффекта игрушечности объектов на снимке.

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

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

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

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

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

Кроме того, не помешало бы сделать невидимую перпендикулярную линию зоны максимальной резкости немножечко менее невидимой, сугубо для удобства. Жёлтый маркер, если что, был наложен поверх видеозаписи :)

Модуль отлично собирается и работает с GIMP 2.6. При использовании в 2.7 начинает выползать надоедливое предупреждение об изменении в API. Избавиться от него можно простейшей правкой исходного кода. В файле render.c находим все упоминания gimp_image_add_layer и заменяем их на gimp_image_insert_layer, добавив ноль в качестве предпоследнего аргумента. Т.е. к примеру

gimp_image_add_layer(tmpvals.tmpimg_id,new_ID,-1);

превращается в

gimp_image_insert_layer(tmpvals.tmpimg_id,new_ID,0,-1);

Сборок для Windows пока нет, так что предлагаем следить за обновлениями на странице модуля в реестре расширений GIMP.

Add a comment