Używam libGDX do gry na Androida; o ile wiem, nie ma interfejsu API do rozmycia.
Czytając w Wikipedii, wydaje się, że rozmycie powstaje przez ustawienie wartości RGB każdego piksela na średnią wszystkich sąsiednich wartości. Co nie wydaje się łatwe w libGDX - ustawianie danych pikseli.
Więc moje pytanie jest proste:
Czy można sfałszować (przyzwoitą) rozmycie przy użyciu samych zdjęć?
Potrafię potencjalnie nałożyć wiele obrazów (pod względem liczby, przezroczystości, typu); ale czy mogę stworzyć tak przekonującą rozmycie?
Kusi mnie, by powiedzieć „nie”, ale może ktoś inny osiągnął coś podobnego. Dla jasności chcę mieć zestaw ponad 1 ogólnych zdjęć, które mogę renderować na DOWOLNYM obrazie, aby wygenerować efekt rozmycia.
graphic-effects
ashes999
źródło
źródło
Odpowiedzi:
Jeśli możesz dodawać obrazy i pomnożyć je przez stałą, możesz rozmazać. Zamiast uśredniać piksele w sąsiedztwie, uśredniłbyś kilka kopii obrazu przesuniętych o niewielką liczbę pikseli od siebie. Lub bardziej ogólnie, można wykonać rozmycie gaussowskie lub jakiekolwiek inne rozmycie, kontrolując wagi - to znaczy, mnożąc każdą przesuniętą kopię obrazu przez stałą, gdy jest on dodawany do pozostałych.
Algorytmicznie wyglądałoby to tak:
Użyłbyś takich samych przesunięć i ciężarów jak w standardowym sposobie robienia rozmycia. Na przykład w Internecie jest wiele artykułów na temat generowania wag dla rozmycia gaussowskiego.
źródło
Rozmycie może być kosztowną operacją, być może może działać inne podejście, np .:
źródło