Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I componenti di illuminazione diffusa e speculare dell'equazione di illuminazione globale contengono termini che descrivono l'attenuazione della luce e il cono in evidenza. 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, utilizzare una delle equazioni seguenti.
Atten = 1/( att0i + att1i * d + att2i * d²)
Dove:
Parametro | Valore predefinito | Digitare | Descrizione | Gamma |
---|---|---|---|---|
att0i | 0.0 | GALLEGGIARE | Fattore di attenuazione costante | da 0 a +infinito |
att1i | 0.0 | GALLEGGIARE | Fattore di attenuazione lineare | da 0 a +infinito |
att2i | 0.0 | GALLEGGIARE | Fattore di attenuazione quadratica | da 0 a +infinito |
d | N/D | GALLEGGIARE | 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.
I valori att0, att1, att2 vengono specificati dai membri Attenuation0, Attenuation1 e Attenuation2 di D3DLIGHT9.
La distanza tra la luce e la posizione del vertice è sempre positiva.
d = | Ldir |
Dove:
Parametro | Valore predefinito | Digitare | Descrizione |
---|---|---|---|
Ldir | N/D | D3DVECTOR | Vettore di direzione dalla posizione del vertice alla posizione della luce |
Se d è maggiore dell'intervallo della luce, ovvero il membro Range di una struttura D3DLIGHT9, Direct3D non esegue ulteriori calcoli di attenuazione e non applica effetti 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 Attenuazione1 su 1,0 per creare una luce che non attenua, ma è ancora limitata dall'intervallo, oppure è possibile sperimentare con valori diversi per ottenere vari effetti di attenuazione.
L'attenuazione in corrispondenza dell'intervallo massimo della luce non è 0,0. Per evitare che le luci vengano improvvisamente visualizzate quando si trovano nella gamma di luce, un'applicazione può aumentare l'intervallo di luce. In alternativa, l'applicazione può configurare 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 che la luce viaggia a un vertice.
Fattore Spotlight
L'equazione seguente specifica il fattore spotlight.
Parametro | Valore predefinito | Digitare | Descrizione | Gamma |
---|---|---|---|---|
rhi | N/D | GALLEGGIARE | coseno (angolo) per spotlight i | N/D |
phii | 0.0 | GALLEGGIARE | Angolo penumbra dei riflettori i in radianti | [thetai, pi) |
thetai | 0.0 | GALLEGGIARE | Angolo Umbra di riflettore i in radianti | [0, pi) |
Falloff | 0.0 | GALLEGGIARE | Fattore di falloff | (-infinity, +infinity) |
Dove:
rh = norm(Ldcs).norm(Ldir)
e:
Parametro | Valore predefinito | Digitare | Descrizione |
---|---|---|---|
Ldcs | N/D | D3DVECTOR | Il negativo della direzione della luce nello spazio della fotocamera |
Ldir | N/D | D3DVECTOR | Vettore di direzione dalla posizione del vertice alla posizione della luce |
Dopo aver calcolato l'attenuazione della luce, Direct3D considera anche gli effetti spotlight, se applicabile, l'angolo che la luce riflette da una superficie e la riflessione del materiale corrente per calcolare i componenti diffusi e speculari per quel vertice. Per altre informazioni, vedere SpotLight.
Argomenti correlati
-
matematica dei di illuminazione