Sto pensando di rimuovere il motion blur nel mio programma 2D, ma dubito dei risultati del mio attuale algoritmo.Soluzioni di motion blur 2D
Il mio approccio si presenta così in questo momento:
- Draw per backbuffer.
- In caso di aggiornamento del buffer anteriore dell'aggiornamento , miscelare il backbuffer sul buffer anteriore.
- Ripetere
cosa potrebbe causare l'effetto "motion blur" è ovviamente la fusione, come oggetti in movimento lasceranno una traccia dissolvenza.
Questo non è chiaramente molto impegnativo per l'hardware, il doppio buffering verrà comunque eseguito e l'unico passaggio aggiuntivo è l'alpha blending, che è un semplice calcolo. Tuttavia, i sentieri saranno molto nitidi e non sfocati affatto, il che potrebbe sembrare un po 'strano. Potrei fare una finestra sfocata sul buffer posteriore prima del passaggio di miscelazione, ma sembra che potrebbe essere molto oneroso su sistemi di fascia bassa come il Nintendo DS.
Esistono soluzioni che consentono di eseguire l'operazione in modo più efficiente o ottenere risultati migliori?
Questo è un buon suggerimento, tuttavia sembra che potrebbe richiedere molta potenza di elaborazione. – Skurmedel
Infatti. A seconda del tipo di primitive che stai visualizzando, ci sono probabilmente alcune ottimizzazioni che potresti applicare. O potresti provare un ibrido tra il mio suggerimento e il tuo. L'algoritmo che hai proposto era un trucco di codifica demo standard negli anni '90. Può produrre buoni risultati. Tuttavia, se stai cercando uno scopo generale, implementazione semplice e veloce del motion blur, sei sfortunato. Ecco perché non lo vedi quasi mai implementato. –