5.2. Direzionale

0
Il tuo voto: Nessuno

Il tipo di sorgente luminosa direzionale ha la caratteristica di essere rappresentata da un solo vettore che, per convenzione, va in direzione opposta a quella della sorgente stessa. Per questo si adatta perfettamente ad essere utilizzata per rappresentare il sole o comunque una sorgente infinitamente distante i cui raggi procedono paralleli.

Questo tipo di illuminazione prevede che l'intensità luminosa sia affetta dell'angolo formato dal vettore normale locale e dal vettore sopra specificato; il valore del coseno dell'angolo formato da questi due vettori rappresenta l'intensità luminosa. (legge di Lambert).

intensità = normale · -direzioneSorgente

Il decadimento dovuto alla distanza dalla sorgente luminosa in genere non viene utilizzato in questi casi (sarà trattato dal prossimo capitolo in poi) ma in base a quello che la sorgente rappresenta e, molto più significativamente, in base alle esigenze o al gusto dei designers, level-designers e grafici.

  // Intensità della luce direzionale
  float intensity = saturate(dot(NormalVec, -lightDir)); 

Risultato dell'implementazione:

Nell'immagine precedente è presente una piccola quantita di luce ambientale azzurra per evitare che il modello sia parzialmente invisibile.