Effetto di illuminazione diffusa a distanza
Usa l'effetto di illuminazione diffusa distante per creare un'immagine che sembra essere una superficie non riflettente con la quale la sorgente di luce sembra provenire da una lunga distanza (come il sole o le luci di sovraccarico) e la luce viene sparsa in tutte le direzioni. Questo effetto usa il canale alfa come mappa di altezza e illumina l'immagine con una sorgente di luce distante.
Il colore della bitmap di output è il risultato del colore della luce, della posizione della luce e della geometria della superficie dell'immagine. L'output del canale alfa per ogni pixel con illuminazione diffusa è sempre 1,0.
Il CLSID per questo effetto è CLSID_D2D1DistantDiffuse.
Immagine di esempio
L'esempio seguente mostra le immagini di input e output dell'effetto di illuminazione diffusa distante.
Proprietà dell'effetto
Enumerazione nome visualizzato e indice | Descrizione |
---|---|
Azimuth D2D1_DISTANTDIFFUSE_PROP_AZIMUTH |
Angolo di direzione della sorgente di luce nel piano XY rispetto all'asse X nella direzione del contatore. Le unità sono in gradi e devono essere comprese tra 0 e 360 gradi. Il tipo è FLOAT. Il valore predefinito è 0,0f. |
Altitudine D2D1_DISTANTDIFFUSE_PROP_ELEVATION |
Angolo di direzione della sorgente di luce nel piano YZ rispetto all'asse Y nella direzione dell'orologio contatore. Le unità sono in gradi e devono essere comprese tra 0 e 360 gradi. Il tipo è FLOAT. Il valore predefinito è 0,0f. |
DiffuseConstant D2D1_DISTANTDIFFUSE_PROP_DIFFUSE_CONSTANT |
Rapporto tra reflection diffusa e quantità di luce in ingresso. Questa proprietà deve essere compresa tra 0 e 10.000 ed è senza unità. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
SurfaceScale D2D1_DISTANTDIFFUSE_PROP_SURFACE_SCALE |
Fattore di scala nella direzione Z. La scala della superficie è senza unità e deve essere compresa tra 0 e 10.000. Il tipo è FLOAT. Il valore predefinito è 1,0f. |
Color D2D1_DISTANTDIFFUSE_PROP_COLOR |
Colore della luce in ingresso. Questa proprietà viene esposta come D2D1_VECTOR_3F (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_DISTANTDIFFUSE_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 (device-independent pixel)/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_DISTANTDIFFUSE_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à. Il tipo è D2D1_DISTANTDIFFUSE_SCALE_MODE. Il valore predefinito è D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR. |
Modalità di scalabilità
Enumerazione | Descrizione |
---|---|
D2D1_DISTANTDIFFUSE_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_DISTANTDIFFUSE_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_DISTANTDIFFUSE_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_DISTANTDIFFUSE_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_DISTANTDIFFUSE_SCALE_MODE_ANISOTROPIC | Usa il filtro anisotropico per campionare un modello in base alla forma trasformata della bitmap. |
D2D1_DISTANTDIFFUSE_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_DISTANTDIFFUSE_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 |