SpotLight : Le Cône de lumière
| Type |
Champ |
Defaut |
Borne |
Utilisation |
| SFFloat |
ambiantIntensity |
0 |
0-1 |
Intensité de la lumière ambiante |
| SFVect3f |
attenuation |
1 0 0 |
- |
Atténuation de l'éclairage en fonction de la distance |
| SFFloat |
beamWidth |
1.570796 |
0-PI/2 |
Définit l'angle dans lequel la lumière du spot sera maximale. |
| SFColor |
color |
1 1 1 |
0 - 1 |
Couleur de la lumière |
| SFFLoat |
cutOffAngle |
0.785398 |
0-PI/2 |
Définit l'angle d'ouverture max du stop |
| SFVect3f |
direction |
0 0 -1 |
- |
Direction du spot |
| SFFloat |
intensity |
1 |
0-1 |
Intensité (0=nulle 1= maximale) |
| SFVect3f |
location |
0 0 0 |
- |
Emplacement de la lumière |
| SFBool |
on |
TRUE |
TRUE - FALSE |
Lumière allumée ou éteinte ? |
| SFFloat |
radius |
100 |
> 0 |
Distance max que la lumière peut atteindre |
Le noeud SpotLight définit une lumière partant d'un
point de la scène (location), vers une direction (direction) et
délimité par un angle (cutOffAngle). L'ensemble forme un cône qui
illuminera les objets.
beamWidth définit le cône dans lequel la lumière aura
une intensité maximale. entre le cône de beamWidth et cutOffAngle,
la lumière s'atténue.
Voici la formule appliquée :
angle = L'angle entre la direction du SpotLight et le vector
entre le point à illuminer et la source (position) du spotLight
if (angle >= cutOffAngle):
multiplier = 0
else if (angle <= beamWidth):
multiplier = 1
else:
multiplier = (angle - cutOffAngle)
/ (beamWidth - cutOffAngle)
intensity(angle) = SpotLight.intensity × multiplier

(schéma issu des spécifications VRML 2.0)
les champs radius, attenuation, ambientIntensity
et color sont expliqués et illustrés pour le noeud PointLight.
Ils possèdent les mêmes propriétés.
Exemple - Utilisation de cutOffAngle
Voici deux exemples d'utilisation de SpotLight. Le premier
exemple utilise le cutOffAngle par défaut et le second réduit le cutOffAgnel,
afin de limiter le cône de lumière.
Retour aux cours VRML
|