Я использую libGDX для андроид игры; насколько я могу судить, у него нет API для размытия.
Читая в Википедии, кажется, что размытие формируется путем установки значений RGB каждого пикселя на среднее значение всех смежных значений. Что не представляется возможным в libGDX - установка данных пикселей.
Так что мой вопрос прост:
Можно ли имитировать (приличное) размытие, используя только изображения?
Я могу потенциально наложить несколько (по количеству, прозрачности, типу) изображений; но могу ли я создать убедительное размытие, как это?
Я испытываю желание сказать «нет», но, возможно, кто-то еще достиг чего-то подобного. Для ясности я хочу, чтобы набор из 1+ общих изображений я мог рендерить поверх ЛЮБОГО изображения, чтобы создать эффект размытия.
источник
Ответы:
Если при этом вы можете смешивать изображения и умножать их на константу, вы можете сделать размытие. Вместо усреднения пикселей по соседству вы должны усреднить несколько копий изображения, смещенных на небольшое количество пикселей друг от друга. Или, в более общем смысле, вы можете сделать размытие по Гауссу или любое другое размытие, управляя весами, то есть умножая каждую смещенную копию изображения на константу по мере ее добавления к остальным.
Алгоритмически это будет выглядеть примерно так:
Вы бы использовали те же смещения и веса, что и при стандартном способе размытия. Например, в Интернете есть множество статей о том, как сгенерировать вес для размытия по Гауссу.
источник
Размытие может быть дорогой операцией, возможно, подойдет другой подход, например:
источник