В первых фильтрах для mIRO))) мне захотелось сделать ставку на грязный и контрастный визуал, напоминающий гравировку. Чтобы приблизиться к такому эффекту, я использовал прием модуляции яркости. В результате черные и белые линии стали складываться в хаотичные фигуры, которые приходилось разглядывать в поисках знакомых лиц и форм.
Технически это было реализовано так:
1. Бралось исходное цветное изображение из камеры:
vec4 img = texture2D(TXC, uv);
2. Вычислялась черно-белая яркость исходного изображения одним из способов:
float bw = 0.0;
// через использование только зеленого цветового канала:
bw = img.g;
// через среднее арифметическое трех цветовых каналов:
bw = dot(img.rgb, vec3(0.333));
// через взвешенное усреднение цветовых каналов:
bw = dot(img.rgb, vec3(0.2126,0.7152,0.0722));
3. Яркость изображения модулировалась, т.е. менялась с линейной на нелинейную, создавая контрастные полосы вместо плавных градиентов:
// частота полос модуляции:
float freq = 10.0;
// вариант преобразования через волновую функцию:
bw = sin(bw*freq)*0.5+0.5;
// вариант преобразования через дробную часть числа:
bw = fract(bw*freq);
4. Исходное изображение из камеры заменялось на полученную нелинейную яркость:
img.rgb = vec3(bw);
Далее к этому результату можно было подключить мульти-экспозицию и работу с цветом. Я часто снимал подобными фильтрами в метро, и однажды принял участие в фотовыставке с коллажем из таких подземных кадров. Благодаря склейке отдельных снимков принт удалось распечатать в полутораметровом размере, поэтому в будущем я возвращался к подобной компоновке и для печати на двухметровом баннере.
Изображения сняты через фильтры:
▹ mIRO))) / Neu
▹ mIRO))) / Zeebox
▹ mIRO))) / Vibravoid





