Effet Starburst
Résumé
L'effet Starburst permet de prendre en compte la diffraction de la lumière en se basant sur le modèle de Fresnel. Cette effet traduit la vision "étoilée" du soleil que l'oeil humain où l'objectif d'une caméra perçoit.
Principe
La lumière traversant
Paramètres
Le calcul de l'effet starburst nécessite de connaître :
- Le masque de la rétine ou de l'objectif de caméra, qui correspond à une image en niveaux de gris où le blanc indique le passage de la lumière.
- Le masque de bruit, qui correpondont à une image de gris où le blanc indique le passage de la lumière
- La distance du plan d'observation
Implémentation
Les masques de l'ouverture et de bruit son d'abord retransformées en images en niveaux de gris au cas où des images en couleurs auraient été passées en paramètres.
Calcul de l'inputLes deux masques sont combinées de manière à ce que pour chaque pixel on ne retienne que celui qui laisse passer le moins de lumière. Le résultat constitue l'entrée du workflow de calcul de l'effet (input).
Calcul du complex inputL'input est modifiée avant application de la transformée de Fourier via la formule suivante.
L'imagine résultant est appelée complex input
Fast Fourier TransformOn applique la transformée de Fourier au complex input. Pour plus de détails, consulter la section consacrée à la transformée de Fourier rapide (
Fast Fourier Transform).
On récupère la magnitude de cette transformée pour la suite du traitement.
PSFSpectral PSFLa PSF
OutputLa SPF Spectrale est enfin réinjectée dans une classe BitmapSource pour utilisation dans externe. Cette image "output" est renvoyée en résultat du traitement.
Où trouver le code?
Projet : System.Windows.Media.Media3D10
Emplacement : Lighting\Starburst.cs
Références
Ce calcul de l'effet Starburst est basée sur le travail de Tobias Ritschel, détaillé ici dans le cadre d'une implémentation en C#.
http://www.mpi-inf.mpg.de/resources/hdr/TemporalGlare/