Question

Je pense à serrage flou de mouvement dans mon programme 2D, mais je doute les résultats de mon algorithme actuel.

Mon approche ressemble à ceci au moment:

  • Dessine à backbuffer.
  • Lorsque le temps de mettre à jour le tampon avant, mélanger le backbuffer sur le tampon d'entrée.
  • Répéter

Quelle serait la cause de l'effet « flou de mouvement » est évidemment le mélange, sous forme d'objets en mouvement laisse une trace de décoloration.

Ceci est évidemment pas très exigeant sur le matériel, la double mise en mémoire tampon se fera de toute façon et la seule étape supplémentaire est le mélange alpha, qui est un simple calcul. Cependant, les sentiers seront très forte, et non floue à tout ce qui peut semble un peu étrange. Je pouvais faire une boîte flou sur le tampon de retour avant l'étape de mélange, mais il se sent comme il pourrait être très éprouvante sur les systèmes bas de gamme comme la Nintendo DS.

Y a-t-il des solutions qui me permettent de le faire de manière plus efficace ou le rendement d'un meilleur résultat à la recherche?

Était-ce utile?

La solution

Vraiment, vous devriez rendre beaucoup de cadres intermédiaires et les mélanger en un seul résultat. Disons, par exemple, que votre taux de trame de sortie est de 50 images par seconde. Vous auriez probablement obtenir un résultat raisonnable si vous rendiez en interne à 500 images par seconde et les groupes mixtes de dix cadres ensemble avant de montrer que pour l'utilisateur.

L'approche que vous utilisez au moment simule la persistance, comme si vous étiez sur le rendu d'un vieux tube cathodique avec du phosphore lent. Ce n'est pas vraiment la même chose que le flou de mouvement. Si la durée de votre cadre est 20ms (1000-1050), puis un mouvement flou cadre se compose de la durée couvrant des rendus de trame 20ms, tous avec la même pondération alpha. La solution de persistance est constitué d'enduits de 20, 40, 60, 80, il y a 100 ms, la décoloration progressivement.

Autres conseils

Il n'y a aucun moyen de le faire plus efficacement à ma connaissance. Cest à peu près aussi efficace que possible. Il semble assez bon si le taux d'image est bonne et le mouvement ne soit pas trop forte aussi bien.

Le meilleur plan à la recherche serait, pour chaque pixel, tracer une ligne semi-transparente de la nouvelle position à la position ancienne. Ce n'est pas un calcul trivial, cependant.

Il pourrait ne pas être très forte du tout. Tout dépend de la fonction de mélange utilisé. Par exemple 0,1 / 0,9 pour l'image précédente / courant respectivement fournira une piste faible.

Je pourrais ajouter que ce mouvement est essentiellement la façon dont le flou dans OpenGL est fait (dans le tampon d'accumulation)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top