Category:LSL Light/fr

From Second Life Wiki
Jump to navigation Jump to search

Les sources de lumière

Propriété de la lumière

La lumière émise par un objet est règlée via 5 paramètres accessibles depuis la page 'features' (3éme onglet) dans la page d'édition d'un objet, ils peuvent également être modifiés par script. Les options apparaissent dans le même ordre dans la fenêtre de contrôle et dans les commandes du script (cf. plus bas)

La première option est une simple fonction allumer/éteindre qui détermine si l'objet est une source de lumière ou pas (option cochée ou = TRUE). La couleur de la lumière est déterminée par le sélectionneur de couleurs ou comme un vector RVB (rouge-vert-bleu ou RGB en anglais)

L'intensité (intensity) de la lumière détermine la puissance de la lumière. Il s'agit d'un float variant entre 0 et 1 (0 = intensité max ; 1= éteint)

Les deux derniers paramètres sont plus subtiles car leurs effets sont plus difficilement perceptibles et intéragissent entre eux.

Le Rayon (Radius) indique jusqu'à quelle distance la lumière se propagera avant de se fondre complètement dans l'ambiance lumineuse du décor. C'est un float représentant la distance en mètres.

La vitesse d'extinction(Falloff) indique la vitesse à laquelle la lumière diminue au fur et à mesure qu'elle s'éloigne de sa source. Le paramètre est un float variant entre 0 et 2 (2 : extinction brutale ; 0 : extinction progressive)

Pour illustrer le fonctionnement de ces paramètres, construisez un cube gris creu (sans texture) de 8mx8mx8m et placez une source de lumiere au centre de l'un de ses cotés et placez vous de façon à pouvoir observer la face opposée à la source de lumière. (Afin de mieux vous rendre compte des effets, vous pouvez éteindre le soleil (dans SL...) et éventuellement supprimer les sources de lumière à proximité de votre ordinateur )

Tant que le rayon(radius) est inférieur à 4m, cad la moitié de la distance du mur opposé, ce dernier reste relativement sombre. Passer la vitesse d'extinction (Falloff) à 2 rendra la pièce encore plus sombre

Lorsque le rayon (radius) atteint les 8m, la pièce est un peu plus lumineuse. Avec une vitesse d'extintion à 2, la pièce est presque aussi sombre que lorsque le rayon était de 4 et la vitesse d'extinction de 0.

Le mur semble devenir significativement plus brillant une fois que le rayon dépasse les 8m. L'effet de la vitesse d'extinction devient plus important : à 0, Des cercles concentriques centrés sur sur l'axe d'illumination peuvent être observés, au max, la pièce est aussi sombre que lorsque le rayon était de 4

Contrôler les sources de lumières

Les lumières dans SL sont déterminées par les standards de l'OpenGL qui permettent de gérer jusqu'à 8 lumières. En pratique, 2 sources sont réservées pour le soleil et la lune, ce qui laisse 6 sources de disponibles. Les 8 lumières sont générées du coté du client avec sa propre carte video, des cartes de modèles différents rendront des résultats légèrement différents.

S'il y a plus de 6 sources de lumières, seules les 6 plus proches seront prises en compte.

Voici un exemple de comment générer et modifier une source de lumière depuis avec le LSL :

<lsl> // Demo de gestion d'une source de lumière unique // 8fev07 "tetsumo kuri" // Merci à squee janitor pour son analyse

integer light_s = TRUE; // "_s" pour indiquer qu'il s'agit d'un statut

default {

   state_entry()
   {
     //  llSetText("touchez moi",<1,0,0.6>,.5);  // au cas ou vous voudriez ajouter une étiquette
   }
   touch_start(integer total_number)
   {
       if ( light_s )
       { 
           light_s = FALSE;
           // fullbright (pleine lumière) n'a rien à voir avec la gestion des lumières introduite en 2006.
           // Le mode pleine lumière peut améliorer le rendu malgré tout
           llSetPrimitiveParams([PRIM_FULLBRIGHT,ALL_SIDES,FALSE]);
             
           llSetPrimitiveParams([PRIM_POINT_LIGHT, FALSE,   // si FALSE, la lumière est éteinte
                                    <0.0,1.0,0.0>,1.0, 10.0, 0.5]); // les autres paramètres sont sans importance
       }            
       else
       {
           light_s = TRUE;
           //llSetPrimitiveParams([PRIM_FULLBRIGHT,ALL_SIDES,TRUE]);   //laissons l'activation de ce mode en commentaire pour le moment
           llSetPrimitiveParams([PRIM_POINT_LIGHT,TRUE,
                                   <1.0,0.7,1.0>,  // couleur RVB          (varie entre 0.0 et 1.0 x3)
                                   1.0,            // intensité            (varie entre 0.0 et 1.0)
                                   10.0,           // rayon                (varie entre 0.1 et 10.0)
                                   0.6 ]);         // vitesse d'extinction (varie entre 0.01 et 1.0)
               
           // la même chose peut être réalisée en une seule ligne :
           // llSetPrimitiveParams([PRIM_FULLBRIGHT,ALL_SIDES,FALSE,PRIM_POINT_LIGHT,TRUE,<1.0,1.0,0.5>,20,1.0,0.5]);
           //      ... mais cela peut s'avérer plus difficile à lire...       
       }
       //llSay(0, " Clic!");
   }

} </lsl>

Pages in category "LSL Light/fr"

The following 7 pages are in this category, out of 7 total.