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


 
16 internaute(s) sur Web3d-fr
Copyright Web3d-fr 2001-2004