Attenuazione e fattore del riflettore

I componenti di illuminazione diffusa e speculare dell'equazione di illuminazione globale contengono termini che descrivono l'attenuazione della luce e il cono spotlight. Questi termini sono descritti di seguito.

Attenuazione

L'attenuazione di una luce dipende dal tipo di luce e dalla distanza tra la luce e la posizione del vertice. Per calcolare l'attenuazione, usare una delle equazioni seguenti.

Atten = 1/( att0i + att1i * d + att2i * d²)

Dove:

Parametro Valore predefinito Tipo Descrizione Intervallo
att0i 0.0 Virgola mobile Fattore di attenuazione costante Da 0 a +infinito
att1i 0.0 Virgola mobile Fattore di attenuazione lineare Da 0 a +infinito
att2i 0.0 Virgola mobile Fattore di attenuazione quadratico Da 0 a +infinito
d N/D Virgola mobile Distanza dalla posizione del vertice alla posizione della luce N/D

 

  • Atten = 1, se la luce è una luce direzionale.
  • Atten = 0, se la distanza tra la luce e il vertice supera l'intervallo della luce.

La distanza tra la luce e la posizione del vertice è sempre positiva.

d = | Ldir |

Dove:

Parametro Valore predefinito Tipo Descrizione
Ldir N/D Vettore 3D con valori a virgola mobile x, y e z Vettore di direzione dalla posizione del vertice alla posizione della luce

 

Se d è maggiore dell'intervallo della luce, Direct3D non esegue ulteriori calcoli di attenuazione e non applica alcun effetto dalla luce al vertice.

Le costanti di attenuazione fungono da coefficienti nella formula: è possibile produrre una varietà di curve di attenuazione apportando semplici regolazioni. È possibile impostare Attenuation1 su 1,0 per creare una luce che non si attenui anche se ancora limitata dall'intervallo, oppure è possibile sperimentare valori diversi per ottenere vari effetti di attenuazione.

L'attenuazione all'intervallo massimo della luce non è 0,0. Per evitare che le luci appaiano improvvisamente quando si trovano nell'intervallo di luce, quest'ultimo può essere aumentato. In alternativa, l'applicazione può impostare costanti di attenuazione in modo che il fattore di attenuazione sia vicino a 0,0 nell'intervallo di luce. Il valore di attenuazione viene moltiplicato per i componenti rosso, verde e blu del colore della luce per ridimensionare l'intensità della luce come fattore della distanza percorsa dalla luce verso un vertice.

Fattore spotlight

L'equazione seguente specifica il fattore spotlight.

equation of the spotlight factor

Parametro Valore predefinito Tipo Descrizione Intervallo
rhoi N/D Virgola mobile coseno(angolo) per spotlight i N/D
phii 0.0 Virgola mobile Angolo penumbra di spotlight i in radianti [thetai, pi)
thetai 0.0 Virgola mobile Angolo umbra di spotlight i in radianti [0, pi)
riduzione 0.0 Virgola mobile Fattore di riduzione (-infinito, +infinito)

 

Dove:

rho = norm(Ldcs).norm(Ldir)

e:

Parametro Valore predefinito Tipo Descrizione
Ldcs N/D Vettore 3D con valori a virgola mobile x, y e z Il negativo della direzione della luce nello spazio della fotocamera
Ldir N/D Vettore 3D con valori a virgola mobile x, y e z Vettore di direzione dalla posizione del vertice alla posizione della luce

 

Dopo aver calcolato l'attenuazione della luce, per calcolare i componenti diffusi e speculari per il vertice, Direct3D considera anche gli effetti spotlight, se applicabili, l'angolo con cui la luce si riflette da una superficie e la riflettanza del materiale corrente. In Tipi di luce, vedere "Spotlight".

Matematica dell'illuminazione