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

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

Эффект размытия

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


person rohan-patel    schedule 08.08.2011    source источник
comment
OpenGL ES 1.1 или OpenGL ES 2.0?   -  person JustSid    schedule 08.08.2011
comment
Вы хотите применить этот эффект к изображению?   -  person Srikar Appalaraju    schedule 08.08.2011
comment
Этот эффект не будет применяться во время Рисования ..   -  person rohan-patel    schedule 08.08.2011
comment
@JustSid: Opengl 1.1 ..   -  person rohan-patel    schedule 08.08.2011
comment
Есть ли способ реализовать его, кроме OpenGL-ES?   -  person rohan-patel    schedule 10.08.2011
comment
@ rohan-patel У меня тоже такое же требование. Вы нашли способ как это сделать? или любым другим способом, как сказал Гейб?   -  person Heena    schedule 01.03.2013
comment
Нет. К сожалению, этот проект был закрыт. Это приложение для рисования было назначено мне через месяц после того, как я присоединился к моей работе в качестве новичка. Не удалось завершить.   -  person rohan-patel    schedule 01.03.2013


Ответы (2)


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

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

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

Вам даже не НУЖНО использовать здесь отдельный буфер накопления, просто визуализируйте каждый проход с альфа-каналом, который в сумме дает твердое тело. Следует помнить одну вещь: вы хотите всегда дрожать по одним и тем же смещениям, чтобы последовательные кадры выглядели одинаково (то есть, если вы используете случайные смещения, каждый кадр будет иметь немного другой эффект размытия).

person Gabe    schedule 31.08.2011

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

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

person Srikar Appalaraju    schedule 08.08.2011