Myślę o zacinaniu ruchu w moim programie 2D, ale wątpię w wyniki mojego obecnego algorytmu.2D rozmycie ruchu rozwiązania
Moje podejście wygląda to w tej chwili:
- Draw do Backbuffer.
- Gdy czas do aktualizacji bufora przedniego, mieszamy bufor bufora na przednim buforze.
- Powtórz
Co spowoduje, że „motion blur” efekt jest oczywiście mieszanie, jak obiekty w ruchu pozostawi ślad blaknięcie.
Oczywiście nie jest to bardzo wymagające dla sprzętu, podwójne buforowanie zostanie wykonane, a jedynym dodatkowym krokiem jest mieszanie alfa, które jest prostym obliczeniem. Jednak szlaki będą bardzo ostre, a nie rozmyte, co może wydawać się nieco dziwne. Mogłem zrobić rozmycie pudełkowe na tylnym buforze przed etapem mieszania, ale wydaje mi się, że może to być bardzo podatne na systemy low-end, takie jak Nintendo DS.
Czy istnieją rozwiązania, które pozwolą mi to zrobić bardziej efektywnie lub uzyskać lepszy wynik?
To jest dobra sugestia, jednak wygląda na to, że może to zająć dużo mocy obliczeniowej. – Skurmedel
Rzeczywiście. W zależności od rodzaju generowanych prymitywów prawdopodobnie istnieją pewne optymalizacje, które można zastosować. Lub możesz spróbować hybrydy mojej sugestii i twojej. Algorytm, który zaproponowałeś, był standardową sztuczką kodującą demo w latach 90-tych. Może przynieść dobre rezultaty. Jeśli jednak szukasz ogólnego celu, prostej i szybkiej realizacji rozmycia, nie masz szczęścia. Właśnie dlatego prawie nigdy go nie zaimplementowano. –