Эффект размытия (влажный в мокром эффекте) в приложении Paint с использованием OpenGL-ES

Я разрабатываю приложение Paint, используя OpenGL-ES для iPhone, и я хочу реализовать эффект размытия Gaussian (Wet in Wet) для рисования. Посмотрите на изображение, описывающее мое требование к эффекту Blur:

Blur effect

Я попытался выполнить поиск функции OpenGL, но ничего не получил. Может ли кто-нибудь вести меня в правильном направлении в этой проблеме.. Любая помощь или предложение будут оценены высоко. Спасибо..

Ответ 1

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

Это будет похоже на сглаживание jitter с буфером накопления, но вместо использования смещений субпикселей вы будете использовать многопиксельные смещения так же сильно, как вы хотите эффект размытия. Вероятно, вы захотите сделать примерно 16 раз, чтобы сделать его гладким. http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node63.html

Это также похоже (или действительно то же самое), что и дрожание для создания размытия движения. http://glprogramming.com/red/chapter10.html

Вам даже НЕОБХОДИМО использовать отдельный буфер накопления, просто отрисуйте каждый проход с альфой, который добавит до твердого. Помните, что вы хотите всегда дрожать по тем же смещениям, чтобы последовательные кадры выглядели одинаково (например, если вы используете случайные смещения, тогда каждый кадр будет иметь слегка различный эффект размытия).

Ответ 2

Я предполагаю, что вы захотите применить это на изображении. Я понятия не имею, как это можно сделать в OpenGL ES. Но вы можете попробовать использовать эту удивительную библиотеку обработки изображений. Он предоставляет другие эффекты изображения, кроме Guassian-Blur...

Счастливое размытие...