Les lumières par points sont simplement des
points
éclairants en toutes directions à partir d’eux
même. Beaucoup d’utilisateur de
Game Maker confondent ces types de lumières avec les
lumières en forme de
cônes. Qui n’est pas supporté par GameMaker, bien qu’avec
un peu de jugeotte
réalisable. Les lumières directionnelles sont
plutôt comme le soleil, toutes
les faces opposée à la source de lumière sont
éclairées.
Voici les lumières par points puis les lumières
directionnelles :
Lumières par points:
Cliquez
ici pour télécharger un
exemple. Paramétrons
les lumières par point :
Une façon plutôt simple de
paramétrer les lumière par point,
que nous appellerons point lights est de definer une variable globale.
– global.light_index
– qui sera utilisé par toutes les sources de lumières
comme indice d’éclairage.
Ensuite de créer un objet – obj_light – qui sera la
lumière dans notre
room ou scène. Dans
l’évènement create de cet objet collez ceci :
index=global.light_index;
global.light_index+=1;
d3d_light_enable(index,true);
d3d_light_define_point(index,x,y,20,300,c_white);
|
Dans
l’évenement Room end mettez ceci:
Et finalement dans l’évenement Destroy
collez ceci:
d3d_light_enable(index,false);
|
Examinons
les points lights:
J’ai vu tellement de truc dingues sur les point lights, comme metre
plusieurs
point light au même endroit afin d’en augmenter
l’intensité ! Alors voici
quelques solutions basiques à ce problème :
- Augmentez simplement la valeur
d’intensité…
- Si ça ne fonctionne pas
vraiment bien (les faces proches de la source de la lumière ne
s’éclairent pas correctement), votre lumière est trop
proche de ce que vous voulez éclairer. L’éloigner est le
meilleur moyen de supprimer ce problème.
E.g. : Vous voulez éclairer votre terrain, mais pour
quelque raison que ce soit la lumière a une très forte
intensité, et cela n’a pas d’effet. Il vous suffira alors
d’augmenter la hauteur (z) de votre lumière, et en
théorie ça devrait fonctionner.
Lumières Directionnelles:
Les lumière directionnelles sont utiles si vous
désirez éclairer toute la
scene. Tout comme le fait le soleil. J’ai donc fait un exemple de
lumière
fonctionnant comme le soleil tournant autour de notre planète
afin de faire le
jour puis de laisser la nuit.
Cliquez
ici pour télécharger cet exemple.
Le coeur de cet exemple est dans le script: scr_sun(), c’est
le code
suivant:
dx=1-x/(room_width/2);
dy=1-y/(room_height/2);
dz=-z/(maxz/2);
d3d_light_define_direction(index,dx,dy,dz,colour);
|
maxz Est défini quelque part un peu avant.
Vous devez bien
évidemment activer les lumières et obtenir l’id de la
lumière, faites
exactement que pour les point lights.
C’est beaucoup plus joli ainsi. Vous pouvez aussi
à l’aide
des lumière directionnelles créer une lumière
ambiante en définissant une très
forte intensité.
Topics:
Directional light tutorial par That Games Guy |