Effetto di illuminazione con luce riflettore 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 chiaro, della posizione della luce, della direzione del cono e della geometria della superficie in base alla 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 quel pixel.
Il CLSID per questo effetto è CLSID_D2D1SpotSpecular.
- Immagine di esempio
- Sorgente di luce spot
- Proprietà dell'effetto
- Modalità di scalabilità
- Requisiti
- Argomenti correlati
Immagine di esempio
L'esempio seguente mostra le immagini di input e output dell'effetto di illuminazione speculare spot.
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 all'esterno del cono.
La sorgente di luce spot calcola il vettore luce L e il vettore halfway H allo stesso modo dell'effetto speculare punto.The spot light source calculates the Light Vector L and the Halfway Vector H the same way as the point-specular effect.
L'effetto calcola il colore chiaro, Lr, Lg, Lb, come funzione della posizione della sorgente di luce, come illustrato nelle equazioni qui:
Il è definito da queste equazioni:
Il è definito da queste equazioni:
Proprietà dell'effetto
Enumerazione nome visualizzato e indice | Descrizione |
---|---|
LightPosition 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}. |
PointsAt D2D1_SPOTSPECULAR_PROP_POINTS_AT |
Dove la luce spot è evidenziata. La proprietà viene esposta come D2D1_VECTOR_3F con (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 |
Lo stato attivo della luce spot. Questa proprietà è senza unità ed è definita tra 0 e 200. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
LimitazioneConeAngle D2D1_SPOT_SPECULAR_PROP_LIMITING_CONE_ANGLE |
Angolo cono che limita l'area in cui viene proiettata la luce. Nessuna luce proiettata all'esterno del cono. L'angolo del cono di limitazione è l'angolo tra l'asse della luce spot (l'asse tra le proprietà LightPosition e PointsAt ) e il cono di 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 di Phong. Un valore maggiore 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 |
Rapporto tra reflection speculare e luce in ingresso. Il valore è unitless 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 è unitless e deve essere compreso tra 0 e 10.000. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
Color D2D1_SPOTSPECULAR_PROP_COLOR |
Colore della luce in ingresso. Questa proprietà viene esposta come Vector 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}. |
KernelUnitLength 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à esegue il mapping ai valori dx e dy nella sfumatura Sobel. Questa proprietà è una 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 vanno in termini di 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 | Campiona il punto singolo 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 | Usa un kernel cubico di esempio 16 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 anti-aliasing dei bordi validi. Questa modalità è valida per ridurre le dimensioni delle immagini con 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 alta qualità con dimensioni variabili per eseguire una scalabilità preliminare dell'immagine se la scalabilità orizzontale è coinvolta nella matrice di trasformazione. Usa quindi la modalità di interpolazione cubica per l'output finale. |
Nota
Se non si seleziona una modalità, per impostazione predefinita l'effetto viene 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 |
Libreria | d2d1.lib, dxguid.lib |