Effetto di illuminazione spot speculare
Usa l'effetto di illuminazione speculare spot per creare un'immagine che sembra essere una superficie riflettente in cui la sorgente di luce è limitata a un cono diretto di luce. Questo effetto usa il canale alfa come mappa di altezza e illumina l'immagine con una sorgente di luce punto.
Il colore della bitmap di output è il risultato del colore della luce, della posizione della luce, della direzione del cono e della geometria della superficie secondo la parte speculare del modello di illuminazione Phong. L'output del canale alfa per ogni pixel con illuminazione speculare è il massimo degli output del canale rosso, verde e blu per tale pixel.
Il CLSID per questo effetto è CLSID_D2D1SpotSpecular.
- Immagine di esempio
- sorgente luminosa del faretto
- proprietà dell’effetto
- modalità di scalabilità
- Requisiti
- argomenti correlati
Immagine di esempio
L'esempio seguente mostra le immagini di input e output relative all'effetto di illuminazione spot speculare.
La luce speculare si riferisce alla luce riflessa in una particolare direzione.
L'effetto calcola i valori dei pixel di output finali usando le equazioni riportate di seguito:
dove
Sorgente di luce spot
Una sorgente di luce spot emette luce in un cono in una direzione specifica e non emette luce al di fuori del cono.
La sorgente di luce spot calcola il Vettore di Luce L e il Vettore Intermedio H allo stesso modo dell'effetto speculare del punto .
L'effetto calcola il colore della luce, Lr, Lg, Lb, come funzione della posizione della sorgente di luce, come illustrato con le equazioni qui:
equazione
Vettore è definito da queste equazioni:
equazione vettoriale
Il simbolo vettore è definito da queste equazioni:
equazione
Proprietà dell'effetto
Enumerazione del nome visualizzato e dell'indice | Descrizione |
---|---|
Posizione della Luce D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION |
Posizione della luce della sorgente di luce punto. La proprietà è un D2D1_VECTOR_3F definito come (x, y, z). Le unità sono in pixel indipendenti dal dispositivo (DIP) e non sono associate. Il tipo è D2D1_VECTOR_3F. Il valore predefinito è {0.0f, 0.0f, 0.0f}. |
PuntiAt D2D1_SPOTSPECULAR_PROP_POINTS_AT |
Dove la luce del riflettore è focalizzata. La proprietà viene esposta come D2D1_VECTOR_3F con i componenti (x, y, z). Le unità sono in DIP e i valori non sono associati. Il tipo è D2D1_VECTOR_3F. Il valore predefinito è {0.0f, 0.0f, 0.0f}. |
Focus D2D1_SPOTSPECULAR_PROP_FOCUS |
L'oggetto dell'attenzione del faro. Questa proprietà è senza unità e viene definita tra 0 e 200. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
Angolo del cono limitante D2D1_SPOT_SPECULAR_PROP_ANGOLO_DEL_CONO_LIMITANTE |
Angolo del cono che limita l'area in cui è proiettata la luce. Nessuna luce proiettata all'esterno del cono. L'angolo del cono limitante è l'angolo tra l'asse della luce spot (l'asse tra le proprietà LightPosition e PointsAt) e il cono della luce spot. Questa proprietà è definita in gradi e deve essere compresa tra 0 e 90 gradi. Il tipo è FLOAT. Il valore predefinito è 90,0f. |
SpecularExponent D2D1_SPOTSPECULAR_PROP_SPECULAR_EXPONENT |
Esponente per il termine speculare nell'equazione di illuminazione Phong. Un valore più grande corrisponde a una superficie più riflettente. Questo valore è senza unità e deve essere compreso tra 1,0 e 128. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
SpecularConstant D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT |
Il rapporto tra la riflessione speculare e la luce in ingresso. Il valore è senza unità e deve essere compreso tra 0 e 10.000. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
SurfaceScale D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE |
Fattore di scala nella direzione Z per generare una mappa di altezza. Il valore è senza unità e deve essere compreso tra 0 e 10.000. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
Colore D2D1_SPOTSPECULAR_PROP_COLOR |
Colore della luce in ingresso. Questa proprietà viene esposta come vettore 3 (R, G, B) e usata per calcolare LR, LG, LB. Il tipo è D2D1_VECTOR_3F. Il valore predefinito è {1.0f, 1.0f, 1.0f}. |
LunghezzaUnitàKernel D2D1_SPOTSPECULAR_PROP_KERNEL_UNIT_LENGTH |
Dimensioni di un elemento nel kernel Sobel usato per generare la normale superficie nella direzione X e Y. Questa proprietà mappa i valori dx e dy nel gradiente di Sobel. Questa proprietà è un D2D1_VECTOR_2F (Lunghezza unità kernel X, Lunghezza unità kernel Y) ed è definita in (unità DIP/unità kernel). L'effetto usa l'interpolazione bilineare per ridimensionare la bitmap in modo che corrisponda alle dimensioni degli elementi del kernel. Il tipo è D2D1_VECTOR_2F. Il valore predefinito è {1.0f, 1.0f}. |
ScaleMode D2D1_SPOTSPECULAR_PROP_SCALE_MODE |
Modalità di interpolazione usata dall'effetto per ridimensionare l'immagine alla lunghezza dell'unità kernel corrispondente. Esistono sei modalità di scala che variano per qualità e velocità. Per altre informazioni, vedi Modalità di scalabilità. Il tipo è D2D1_SPOTSPECULAR_SCALE_MODE. Il valore predefinito è D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR. |
Modalità di scalabilità
Enumerazione | Descrizione |
---|---|
D2D1_SPOTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR | Prende campione del singolo punto più vicino e lo usa. Questa modalità usa meno tempo di elaborazione, ma restituisce l'immagine di qualità più bassa. |
D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR | Usa un campione a quattro punti e l'interpolazione lineare. Questa modalità restituisce un'immagine di qualità superiore rispetto al vicino più vicino. |
D2D1_SPOTSPECULAR_SCALE_MODE_CUBIC | Utilizza un kernel cubico a 16 campioni per l'interpolazione. Questa modalità usa il tempo di elaborazione più elevato, ma restituisce un'immagine di qualità superiore. |
D2D1_SPOTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR | Usa 4 campioni lineari all'interno di un singolo pixel per un buon anti-aliasing dei bordi. Questa modalità è utile per ridurre leggermente le dimensioni delle immagini quando hanno pochi pixel. |
D2D1_SPOTSPECULAR_SCALE_MODE_ANISOTROPIC | Usa il filtro anisotropico per campionare un modello in base alla forma trasformata della bitmap. |
D2D1_SPOTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC | Usa un kernel cubico di dimensioni variabili di alta qualità per eseguire un ridimensionamento preliminare dell'immagine se il ridimensionamento è incluso nella matrice di trasformazione. Usa quindi la modalità di interpolazione cubica per l'output finale. |
Nota
Se non si seleziona una modalità, l'effetto viene impostato automaticamente su D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store] |
Server minimo supportato | Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store] |
Intestazione | d2d1effects.h |
Biblioteca | d2d1.lib, dxguid.lib |