Condividi tramite


Effetto di illuminazione diffusa distante

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 è 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 chiaro, 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.

esempio di effetto screenshot delle immagini di input e output dell'effetto di illuminazione diffusa distante.

Proprietà dell'effetto

Nome visualizzato e enumerazione dell'indice Descrizione
Azimut
D2D1_DISTANTDIFFUSE_PROP_AZIMUTH
Angolo della sorgente luminosa nel piano XY rispetto all'asse X in senso antiorario. Le unità sono in gradi e devono essere comprese tra 0 e 360 gradi.
Il tipo è FLOAT.
Il valore predefinito è 0,0f.
Elevazione
D2D1_DISTANTDIFFUSE_PROP_ELEVATION
Angolo di direzione della sorgente luminosa nel piano YZ rispetto all'asse Y in senso antiorario. 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 riflessione 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.
Colore
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}.
LunghezzaUnitàKernel
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à corrisponde ai valori dx e dy nel gradiente Sobel. Questa proprietà è un D2D1_VECTOR_2F (Lunghezza unità kernel X, Lunghezza unità kernel Y) ed è definita in (pixeles indipendenti dal dispositivo (DIPs)/Unità del 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 variano per qualità e velocità.
Il tipo è D2D1_DISTANTDIFFUSE_SCALE_MODE.
Il valore predefinito è D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR.

Modalità di scalabilità

Enumerazione Descrizione
D2D1_DIFFUSODISTANTE_SCALA_MODALITÀ_NESSUNO_VICINO Campiona il singolo punto più vicino e lo utilizza. 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 16 campioni 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 un buon anti-aliasing dei bordi. Questa modalità è utile per ridurre leggermente 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 dimensioni variabili di alta qualità per effettuare un pre-ridimensionamento dell'immagine se il ridimensionamento è parte della 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 è 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
Biblioteca d2d1.lib, dxguid.lib

ID2D1Effect