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'input
Les 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 input
L'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 Transform
On 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.

PSF

Spectral PSF
La PSF

Output
La 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/

Last edited May 26, 2012 at 2:56 PM by ldasilva, version 4

Comments

No comments yet.