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.
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".
Argomenti correlati
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per