Cześć i czołem!
Udało mi się w końcu uruchomić prosty shader efektów deszczu na szybie.
Jest to klasyczny efekt generowania 2D kropli z tekstury atlasu, rozmieszczanych losowo na powierzchni szyby.
Zasada działania jest prosta: w modelu kabiny duplikujemy szyby i przesuwamy je minimalnie na zewnątrz. Te duplikaty pełnią rolę „placeholdera”, na którym generowany jest deszcz (z wykorzystaniem białej tekstury RGB bez kanału alfa).
Próbowałem uruchamiać to bezpośrednio na szybie właściwej, jednak pojawiały się problemy z mieszaniem kolorów. Pewnie dałoby się to rozwiązać, ale na obecnym etapie mojej wiedzy o shaderach jeszcze tego nie ogarniam.
Shader dzieli placeholder deszczu na sektory, w których losuje tekstury kropli z atlasu i umieszcza je na szybie. Niektóre krople spływają i lekko drżą podczas ruchu – próbowałem w ten sposób zasymulować bardziej naturalne zachowanie.
Intensywność opadów można regulować dowolnie — można wręcz zasypać deszczem całą szybę, a wpływ na wydajność jest praktycznie niezauważalny.
Zapytacie pewnie o efekt ścierania — tak, udało mi się go uruchomić. Rozwiązałem też problem buforowania deszczu między kolejnymi cyklami pracy pióra wycieraczki, oczywiście w takim zakresie, na jaki pozwala obecny silnik graficzny Maszyny.
Niestety, mimo że sam efekt wygląda całkiem przyzwoicie, nie jest jeszcze zintegrowany z pracą pióra. Hirek obiecał, że gdy zgłębi tajniki renderera, postara się dopisać obsługę do EXE. Wtedy wycieraczki faktycznie będą ścierały deszcz. Na ten moment deszcz znika „sam z siebie”, nawet gdy wycieraczka nie pracuje.
W najbliższych dniach postaram się przygotować paczkę z efektami deszczu dla EP09, żebyście mogli sami ocenić, jak to wygląda.
Tymczasem wrzucam screeny i filmiki.
=====================================
Mało deszczu:
https://streamable.com/jypoivhttps://streamable.com/6i6ei5Dużo deszczu:
https://streamable.com/q0or7nŚcieranie:
https://streamable.com/uyd52ahttps://streamable.com/68a70c