lumière
Principe
Les lumières sont des objets en nombre illimité construits par:
light(id)
lumière d´identificateur id.
A sa création une lumière est active, pour la désactiver faire
validate light(id)=0.
Pour la réctiver faire validate light(id)=1.
Des propriétés peuvent leur être affectées:
Temps réel:
Le numéro doit appartenir à l´intervalle [1,n] avec n est le nombre maximum
de lumières (selon la version d´OpenGL).
Propriétés générales
aim light(id)=x,y,z: définit un spot de direction (x,y,z).
ambiance light(id)=r,v,b: définit l´ambiance.
col light(id)=r,v,b: définit la couleur.
coe light(id)=c: atténuation en fonction de la distance.
eye light(id)=x,y,z: définit la position.
ext light(id)=r,n: définit un globe lumineux.
foc light(id)=ouv: définit l´ouverture d´un
spot.
meta light(id)=a,b; calcul automatique du roll
en fonction de la focale.
roll light(id)=c: l´intensité de la lumière est multipliée
par (cos(a))^c, avec a=angle(dir,LP), dir=aim light(id), L=eye light(id) et P=point éclairé
(une bonne valeur est 10).
traj(ni)tran(...)light(id): trajectoire du point 1 de la lumière id.
type light(id)="eye": lumière placé à l´oeil.
Lumière procédurale
Avec des fonctions locales:
local(0)obj(id_obj)="f";
traitement par une fonction locale anyflo f().
local(0)light(id)=num;
traitement par une fonction localeécrite en C.
light
light(id)
Crée la lumière id avec les valeurs par défaut:
position en haut et à left
couleur blanche
Pour modifier ces valeurs voir:
Exemple:
light(1)eye(0,-1000,0)col(1,.8,.4)aim(0,1,0)foc(PI/4)roll(100);
Construit le spot 1 positionné en (0, -1000.0), regardant vers
l´origine, de couleur orange, d´ouverture PI / 4 ed de loi de variation 100.
law light
law light(id)=an lisse le spot.
texture light
etc...
Exemple:
light(1)eye(0,-1000,0)col(1,.8,.4)aim(0,1,0)foc(PI/4)roll(100);
Construit le spot numéro 1 situé en (0,-1000,0), regardant vers l´origine, de couleur orange,
d´ouverture PI/4 et de law de variation 100.
light motif vol
light motif vol(id)
Retourne les numéros des lumières éclairant les
motifs du volume id.
light motif vol(id)=n1
Affecte ces numéros.
Remarque:
Si le volume id a une propriété motif vertex vol, les motifs subiront
l´éclairement du point ou ils sont affichés
spot
Un spot est une lumière de type:
aim:
type light(id)="aim"
point de visée: aim light(id)=xa,ya,za
axis:
type light(id)="axis"
direction: axis light(id)=dx,dy,dz
coefficient d´atténuation coe light(id)=c between 1 and 100.
focale foc light(id)=ouv between 0 and PI.
coefficient exponentiel roll light(id)=r between 0 and 100.
meta light(id)=a,b; calcul automatique du roll
en fonction de la focale.
Exemple:
light(1)eye(0,-1000,0)col(1,.8,.4)aim(0,0,0)foc(PI/4)roll(100);
Construit le spot numéro 1 situé en (0,-1000,0), regardant vets l´origine, de couleur orange,
d´ouverture PI/4 et de loi de variation 100.
light vertex vol
light vertex(s) vol(id)
Retourne les numéros des lumières associées au sommet s du volume id.
light vertex(s) vol(id)=num
Affecte ces numéros.
Remarques:
1) Lors de l´affichage du volume id, la lumière num provoquera un reflet
au sommet s.
2) Il sera nécessaire de générer les normales aux sommets du volume id
(voir generate normal vertex vol)
light vol
light vol(id)
Retourne les numéros des lumières attachées au volume id.
light vol(id)=expr
Affecte ces numéros.
Remarque: lors d´un affichage en yes illum les volumes affectés de lumières
seront éclairés par celles-ci seulement.
Voir aussi: