Proprietà della luce

Le proprietà di luce descrivono il tipo di sorgente luminosa (puntiforme, direzionale, riflettore), attenuazione, colore, direzione, posizione e intervallo. A seconda del tipo di luce utilizzata, una luce può avere proprietà per l'attenuazione e l'intervallo o per gli effetti spotlight. Non tutti i tipi di luci utilizzano tutte le proprietà.

Le proprietà di posizione, intervallo e attenuazione definiscono la posizione di una luce nello spazio globale e il modo in cui la luce emette si comporta sulla distanza.

Attenuazione della luce

L'attenuazione controlla il modo in cui l'intensità di una luce diminuisce verso la distanza massima specificata dalla proprietà range. A volte vengono usati tre valori a virgola mobile per rappresentare l'attenuazione della luce: Attenuazione0, Attenuazione1 e Attenuazione2. Questi valori a virgola mobile vanno da 0,0 a infinito, controllando l'attenuazione di una luce. Alcune applicazioni impostano il membro Attenuazione1 su 1,0 e gli altri su 0,0, con conseguente intensità di luce che cambia come 1 /D, dove D è la distanza dalla sorgente di luce al vertice. L'intensità massima della luce è alla sorgente, riducendo a 1 / (intervallo di luce) nell'intervallo della luce.

Anche se in genere, un'applicazione imposta Attenuazione 0,0 su 0,0, Attenuazione1 su un valore costante e Attenuazione2 su 0,0, è possibile ottenere effetti di luce variabili modificando questo valore. È possibile combinare i valori di attenuazione per ottenere effetti di attenuazione più complessi. In alternativa, è possibile impostarli su valori esterni all'intervallo normale per creare effetti di attenuazione sconosciuti. I valori di attenuazione negativi, tuttavia, non sono consentiti. Vedere Fattore spotlight e attenuazione.

Colore chiaro

Le luci in Direct3D generano tre colori usati in modo indipendente nei calcoli di illuminazione del sistema: un colore diffuso, un colore ambientale e un colore speculare. Ognuno di essi è incorporato dal modulo di illuminazione Direct3D, che interagisce con una controparte del materiale corrente, per produrre un colore finale usato per il rendering. Il colore diffuso interagisce con la proprietà di riflessione diffusa del materiale corrente, il colore speculare con la proprietà di riflessione speculare del materiale e così via. Per informazioni specifiche sul modo in cui Direct3D applica questi colori, vedere Matematica dell'illuminazione.

In un'applicazione Direct3D, in genere sono presenti tre valori di colore: Diffusa, Ambient e Specular che definisce il colore generato.

Il tipo di colore che si applica maggiormente ai calcoli del sistema è il colore diffuso. Il colore più diffuso è bianco (R:1.0 G:1.0 B:1.0), ma è possibile creare colori in base alle esigenze per ottenere gli effetti desiderati. Ad esempio, è possibile usare la luce rossa per un camino o usare la luce verde per un segnale di traffico impostato su "Go".

In genere, i componenti del colore chiaro vengono impostati sui valori compresi tra 0,0 e 1,0 inclusi, ma questo non è un requisito. Ad esempio, è possibile impostare tutti i componenti su 2.0, creando una luce "più luminosa del bianco". Questo tipo di impostazione può essere particolarmente utile quando si usano impostazioni di attenuazione diverse da costante.

Nonostante Direct3D usi valori RGBA per le luci; il componente colore alfa non viene utilizzato.

In genere i colori materiali vengono usati per l'illuminazione. Tuttavia, è possibile specificare che i colori materiali emissivi, ambientali, diffusi e speculari devono essere sostituiti da colori dei vertici diffusi o speculari.

Il valore alfa/trasparenza proviene sempre solo dal canale alfa del colore diffuso.

Il valore della nebbia proviene sempre solo dal canale alfa del colore speculare.

Direzione luce

La proprietà direzionale di una luce determina la direzione in cui la luce emessa dall'oggetto viaggia nello spazio globale. La direzione viene usata solo dalle luci direzionali e dai riflettori e viene descritta con un vettore.

Impostare la direzione della luce come vettore. I vettori di direzione vengono descritti come distanze da un'origine logica, indipendentemente dalla posizione della luce in una scena. Pertanto, un riflettore che punta direttamente in una scena, lungo l'asse z positivo, ha un vettore di direzione pari a <0,0,1> indipendentemente dalla posizione in cui è definita. Analogamente, è possibile simulare la luce solare splendendo direttamente su una scena usando una luce direzionale la cui direzione è <0,-1,0>. Non è necessario creare luci che risplendono lungo gli assi delle coordinate; è possibile combinare e abbinare valori per creare luci che risplendono ad angoli più interessanti.

Anche se non è necessario normalizzare il vettore di direzione di una luce, assicurarsi sempre che abbia grandezza. In altre parole, non usare un vettore di direzione <0,0,0> .

Posizione luce

La posizione della luce viene descritta usando una struttura vettoriale. Le coordinate x, y e z vengono considerate nello spazio globale. Le luci direzionali sono l'unico tipo di luce che non utilizza la proprietà position.

Intervallo chiaro

La proprietà range di una luce determina la distanza, nello spazio globale, in cui le mesh in una scena non ricevono più luce emessa da tale oggetto. Le luci direzionali non usano la proprietà range.

Luci e materiali