[as3 - cs4] motion blur effect

Description

Classe pour pouvoir faire très facilement un effet de flou de vitesse sur toute votre scène (ou partiellement), réalisée en AS3.
Ici le principe est simple : mixer les X dernières images rendues entre elles, rendant une impression de flou de vitesse, ce nombre d'images X est réglable.
Une deuxième méthode est disponible : mixer l'image actuelle avec une autre image qui est elle même un mix des dernières images rendues à l'écran. Cette deuxième méthode est moins couteuse en calcul, mais le rendu est légèrement différant... A vous de choisir ce qui vous convient le mieu.

3 exemples d'utilisation fournits:
Main.swf - simple rond dirigé par la souris.
PhysicExemple.swf - plusieurs ronds rebondissent sur les bords de la fenêtre.
GifExemple.swf - Application de l'effet sur des clips animés (l'animation n'est pas de moi)
Note:Les 3 exemples utilise la deuxième méthode de motion blur.

A savoir : Le motion blur permet de donner une impression de fluidité quand le FPS d'une animation tend vers des valeurs plutôt faibles.
Inconvénient de cette technique : L'effet de flou va dépendre du FPS de votre animation. Plus elle tournera lentement, plus l'effet donnera une impression de grandes trainées.

Source / Exemple :


Comment utiliser l'effet? 3 lignes.

import stefbuetFX.MotionBlur;

var mbEffect:MotionBlur=new MotionBlur(this, 5, stage.stageWidth, stage.stageHeight);
addEventListener(Event.ENTER_FRAME, mbEffect);
addChild(mbEffect);

Variante pour utiliser la deuxième méthode:
var mbEffect:MotionBlur=new MotionBlur(this, 0, stage.stageWidth, stage.stageHeight, true, 0.5);

Conclusion :


MotionBlur(rootNode:DisplayObject, samples:uint, width:uint, height:uint, useCostlessMethode:Boolean=false, persistance:Number=0.5) : Constructeur
rootNode : Sur quel objet appliquer le flou? la racine permet de prendre en compte toute la scène.
samples : Nombre d'images à utiliser dans le buffer.
width & height : dimensions de l'effet. Si vous ne savez pas quoi mettre, laisser les dimensions de la fenetre.
useCostlessMethode : envoyer true pour utiliser la deuxième méthode de rendu moins couteuse en calculs. Désactivé par Default.
persistance: Si deuxième méthode utilisée, facteur de transparence des rendus lors de leur mélange avec les précédents rendus, entre 0 et 1 (0 = pas de flou, 1 = flou max)

update(e:Event=null):void
peut être appelé manuellement ou par un écouteur d'evenement.
Permet de mettre à jour l'effet.

drop():void
Vide la mémoire.
Attention, n'utilisez plus l'effet après avoir utilisé cette méthode!

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.