Light sources

I nodi Shape sono illuminati dalla luce che li raggiunge a partire da tutte le fonti di luce presenti nel mondo.
La luce può essere sia diretta che indiretta.
La luce ambientale è data dall’effetto combinato, riprodotto più o meno fedelmente, delle luci provenienti da diverse sorgenti di luce.

Le sorgenti di luce possono essere i nodi: DirectionalLight, PointLight e SpotLight.

I nodi sorgente di luce hanno dei campi comuni che specificano rispettivamente:

  • intensity, l’intensità di luce diretta [0.0, 1.0]
  • ambientIntensity, il contributo alla luce ambientale [0.0, 1.0]
  • color, le proprietà di colore della luce emessa (una tripla RGB)
  • on, accesa?

DirectionalLight

DirectionalLight
{
 exposedField SFFloat ambientIntensity 0      # [0, 1]
 exposedField SFColor color            1 1 1  # [0, 1]
 exposedField SFVec3f direction        0 0 -1 # (-..., ...)
 exposedField SFFloat intensity        1      # [0, 1]
 exposedField SFBool  on               TRUE
}

La luce direzionale attraversa tutta la scena nella direzione indicata da direction illuminando tutte le figure presenti senza effetti d’ombra.
È da considerarsi posizionata all’infinito… a meno che non sia inserita in un gruppo: in questo caso illumina solo i fratelli e i discendenti.

La configurazione di default è

  • ambientIntensity, nessun contributo
  • color, bianca
  • direction, verso il fondo della scena, z=-1
  • intensity, massima
  • on, accesa

PointLight

PointLight
{
 exposedField SFFloat ambientIntensity 0     # [0, 1]
 exposedField SFVec3f attenuation      1 0 0 # [0, ...)
 exposedField SFColor color            1 1 1 # [0, 1]
 exposedField SFFloat intensity        1     # [0, 1]
 exposedField SFVec3f location         0 0 0 # (-..., ...)
 exposedField SFBool  on               TRUE
 exposedField SFFloat radius           100   # [0, ...)
}

Una luce puntuale si diffonde in tutte le direzioni

  • location, traslazione rispetto all’origine
  • radius, distanza massima raggiunta
  • attenuation, tre parametri fisici…

SpotLight

SpotLight
{
 exposedField SFFloat ambientIntensity 0        # [0, 1]
 exposedField SFVec3f attenuation      1 0 0    # [0, ...)
 exposedField SFFloat beamWidth        1.570796 # (0, PI/2]
 exposedField SFColor color            1 1 1    # [0, 1]
 exposedField SFFloat cutOffAngle      0.785398 # (0, PI/2]
 exposedField SFVec3f direction        0 0 -1   # (-..., ...)
 exposedField SFFloat intensity        1        # [0, 1]
 exposedField SFVec3f location         0 0 0    # (-..., ...)
 exposedField SFBool  on               TRUE
 exposedField SFFloat radius           100      # [0, ...)
}

Una luce spot si diffonde secondo un cono di luce

  • location, traslazione rispetto all’origine
  • radius, distanza massima raggiunta
  • attenuation, tre parametri fisici…
  • beamWidth, angolo di intensità massima
  • cutOffAngle, angolo di intensità nulla

Nota: si comporta male, come una DirectionalLight, sulle superfici piatte…


headlight

Il campo headlight del nodo NavigationInfo specifica se è accesa o meno (TRUE/FALSE) una luce posizionata in testa all’osservatore.
Si comporta come una luce direzionale che punta nella direzione in cui l’osservatore sta guardando.

Le sue caratteristiche sono:

  • intensity, 1
  • color, (1 1 1)
  • ambientIntensity, 0.0
  • direction, (0 0 -1)

Lascia un commento