Szukałem w sieci zasobów związanych z renderowaniem efektu rozkwitu za pomocą GLSL, ale niczego nie znalazłem. Chociaż samouczek na stronie Philip Rideout jest dobry, działa bardzo słabo na moim procesorze graficznym Nvidia.
Czy ktoś może mi wskazać, jak podejść do tego problemu i zbudować dość wydajną implementację efektu rozkwitu?
Odpowiedzi:
Jak wspomniał Trevor w swoim komentarzu, jedyną opcją może być zmniejszenie rozmiaru jądra lub dalsze próbkowanie w dół.
Ale czy dokładnie przeczytałeś samouczek, z którym masz link? Istnieje pewna wskazówka dotycząca wykorzystywania filtrowania sprzętowego, którą autor nazywa „podstępną” wersją. To prawdopodobnie najlepsza sztuczka, której możesz użyć, aby zoptymalizować efekt kwitnienia bez wpływu na jego jakość.
źródło
Rozwiązałem bardzo podobny problem (rozmycie, ale filtr kwitnienia zaciera się) za pomocą dwóch przejść.
W pierwszym przejściu rozmazuję w kierunku X, a w drugim przejściu rozmazuję w kierunku Y.
Nie wiem, skąd mam tę sztuczkę, ale zmniejsza złożoność czasu z n² do 2n.
Działa to tylko w przypadku jąder, które nie mają żadnego kierunku (więc nie można zoptymalizować jądra bokeh w ten sposób).
źródło