egormerkushev
@egormerkushev
iOS разработчик, автор PixelMixel

Где найти реализацию эффекта Gaussian Blur на С++ для Cocos2d-x?

Второй день ищу реализацию эффекта gaussian blur для использования в Cocos2d-x v2.0 на двух платформах - iOS и Android.

Нашел реализацию через AWTextureFilter, но этот класс в свою очередь требует актуальных для текущей версии Cocos2d (OpenGL 2.0) классов CCTexture2DMutable и CCRenderTextureMutable на С++, которых нет. В OpenGL я не разбираюсь, чтобы самостоятельно обновить эти классы.

Так же сейчас рассматриваю вариант воспользоваться портированным на C++ GPUImage, но решение это выглядит тяжеловесным, с точки зрения конечной цели - мне требуется просто размыть скриншот для подложки меню.
Так же при использовании GPUImage и Cocos2d есть проблемы с доступом к графическому контексту...

В cocos2d-x есть пример blur filter, реализованный через шейдер, но его результат разительно отличается от требуемого (например, Gaussian Blur в Photoshop) в худшую сторону (итоговое размытие похоже на motion blur).

Хотелось бы найти быстрое и простое решение.
  • Вопрос задан
  • 4269 просмотров
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
лучше использовать шейдер думаю, и эффект там зависит от ядра свертки.
Ответ написан
AxisPod
@AxisPod
Ну настоящий блюр штука не легкая, особенно если вам надо будет постоянно рендерить, батарейку разве что садить. Хотя одноразово срендерить в текстуру можно. Лучше шейдерами сделать.
Ответ написан
egormerkushev
@egormerkushev Автор вопроса
iOS разработчик, автор PixelMixel
В итоге реализовал через AWTextureFilter, но он почему-то падает на Android. Найду ошибку - напишу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы