The first weblog devoted to Demoniak3D Demo-System

Lens Flares

February 5th, 2008 Posted in Demos, FR, Tutorials

Voila une petite demo toute simple de l’utilisation du moteur de lens flares de Demoniak3D.

Une source lumineuse est placée en [-50.0; 150.0; -400.0] et représente la lumière du soleil. Un modele à géométrie complexe (issue de la celèbre invitation de la demoparty VIP2 – une des meilleurs demos!) est posé entre la source de lumière et la caméra:

Le code d’initialisation du moteur de lens flares est le suivant:

HYP_LensFlares.Init();
HYP_LensFlares.SetIntensityFactor(500.0);

La fonction SetIntensityFactor() permet de régler le facteur d’intensité alpha qui est appliqué aux différentes flares. En régle générale ce facteur doit être égale à la moitié de la largeur de la fenêtre 3d. Lorsqu’un flare atteint les bords de l’écran, ce facteur fait que la composante alpha du flare est proche de zéro et il devient totalement transparent.

Le phénomène de lens flares est créé par une source de lumière (en général très intense) qui montre les imperfections des lentilles de la caméra. Cette source de lumière est prise en compte avec la fonction AddFlaresSource():

HYP_LensFlares.AddFlaresSource("sunlight");

AddFlaresSource() prend soit le nom d’un objet soit son ID.

Maintenant il ne reste qu’à ajouter les différents flares:

RGBA = 1;
flare_tid = HYP_Texture.LoadTex2D( "flare1.jpg", RGBA, 0 );
size = 1.1;
position = -1.0;
r = 1.0;
g = 1.0;
b = 1.0;
a = 1.0;
HYP_LensFlares.AddFlare( flare_tid, size, position, r, g, b, a );

Les paramètres qui définissent un flare sont sa texture, sa taille, sa position et sa couleur. La texture et la couleur sont explicites. La taille ou plus exactement facteur de taille permet de fixer la taille de rendu d’un flare. Un facteur de 1.0 dessine un flare de la même taille que l’image de la texture. La position est le paramètre le plus complexe. C’est une position relative par rapport au centre de l’écran. Les flares sont positionnés sur un rayon imaginaire dont l’origine est la source de lumière et qui passe par le centre de l’écran. Une valeur de 0.0 place un flare au centre de l’écran. Une valeur de -1.0 place le flare sur la source lumineuse et une valeur de 1.0 place le flare à l’autre extrémité du rayon. Toutes les valeurs réelles pour le paramètre position sont valables. A vous de choisir celles qui conviennent le mieux.

Un petit merci à Steph3D pour avoir pondu quelques belles textures de lens flares.

Cette démo de lens flares est disponible dans le répertoire “Samples/LensFlares/” de Demoniak3D.

Les lens flares sont utilisés dans la demo de l’ile déserte.

Bon coding!

  1. 3 Responses to “Lens Flares”

  2. By Dr. Goulu on Feb 5, 2008

    Cool !
    mais sur mon ATI X 1950, le lens flare apparait brutalement à un certain angle. Ca a pas l’air de marcher le truc du alpha.

  3. By JeGX on Feb 5, 2008

    t’arrives à poster un screenshot sur le forum? Il doit deja y avoir un topic pour cette démo.

  1. 1 Trackback(s)

  2. Feb 5, 2008: Hypergraphics3D » Blog Archive » Demoniak3D 1.20.0

You must be logged in to post a comment.