Cette classe permet de créer très facilement en 1 ligne de code un effet de High Dynamic Range Glow sur n'importe quel display object de l'application.
Le bloom ou HDRGlow comme je l'appel ici est le phénomène observé lorsque l'on place un objet très lumineux derrière un autre objet plus ou moins réfléchissant. On peut voir avec une sorte de glow la lumière de l'objet lumineux part dessus l'objet le recouvrant... (les exemples parlent d'eux même)
Normalement, on parle pour cet effet de Bloom, j'utilise le mot Glow car c'est un filtre Glow que j'utilise au final dans la classe, bien que cela soit totalement invisible aux yeux de l'utilisateur.
Il faut savoir pour finir que l'effet de "bloom" est une "simulation", un vrai effet bloom se calcul sur une scène 3D, cependant les résultats sont assez satisfaisants.
Source / Exemple :
La classe HDRGlow est fournie avec deux exemples pour l'illustrer, ainsi qu'une autre classe "ColorUtils" qui possèdes plusieurs méthodes de conversions en rapport avec les couleurs (utilisée par la classe HDRGlow).
Les deux exemples sont dans le dossier BIN.
Les sources sont dans le dossier SRC.
La classe HDRGlow est extrêmement commentée! Ainsi vous pourrez bien comprendre à quoi correspondent les paramètres des fonctions, comment elles fonctionnent, et éventuellement les modifier pour les plus curieux.
Conclusion :
Comment créer un effet HDR Glow? Rien de plus simple :
import stefbuetFX.HDRGlow;
var HDR:HDRGlow=new HDRGlow(monObjet);
addChild(HDR);
Vous pouvez appliquer le même effet glow sur l'objet lumineux automatiquement via la fonction static : setupTargetGlow();
De plus, vous pouvez accéder aux données bitmapdata de l'effet calculé directement en utilisant la méthode static drawHDR() sans avoir besoin d'instancier d'objet de la classe. (Détaillé dans les commentaires).
Note:
Niveau expert pour le code (comprendre comment il marche?)
mais moins que débutant pour l'utiliser!
Voila, en espérant que certains y trouverons un intérêt pratique!
Stef.