Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Usa l'effetto di illuminazione diffusa dal punto per creare un'immagine che sembra essere una superficie non riflettente con 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 punto.
Il colore della bitmap di output è il risultato del colore chiaro, della posizione della luce e della geometria della superficie. L'output del canale alfa per ogni pixel con illuminazione diffusa è sempre 1,0.
Il CLSID per questo effetto è CLSID_D2D1PointDiffuse. Per usare questo effetto, aggiungere dxguid.lib alle dipendenze del linker.
Immagine di esempio
L'esempio seguente mostra le immagini di input e output dell'effetto di illuminazione diffusa a punti.
L'illuminazione diffusa si riferisce alla luce riflessa in più direzioni, come illustrato qui.
L'effetto calcola i valori dei pixel di output finali usando queste equazioni:
Dove:
- kd = costante di illuminazione diffusa. Specificato dall'utente.
= vettore di unità normale della superficie, una funzione di x e y.
= vettore di unità che punta dalla superficie alla luce.Lr, Lg, Lb = colore chiaro nei componenti RGB.
Proprietà dell'effetto
| Enumerazione del nome visualizzato e dell'indice | Descrizione |
|---|---|
| Posizione della Luce D2D1_POINTDIFFUSE_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}. |
| DiffuseConstant D2D1_POINTDIFFUSE_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_POINTDIFFUSE_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_POINTDIFFUSE_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_POINTDIFFUSE_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 (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_POINTDIFFUSE_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 qualità e velocità. Per altre informazioni, vedi Modalità di scalabilità. Il tipo è D2D1_POINTDIFFUSE_SCALE_MODE. Il valore predefinito è D2D1_POINTDIFFUSE_SCALE_MODE_LINEAR. |
Modalità di scalabilità
| Enumerazione | Descrizione |
|---|---|
| D2D1_POINTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR (Modalità di scala "punto diffuso" più vicino) | Campiona il singolo punto più vicino e lo usa. Questa modalità usa meno tempo di elaborazione, ma restituisce l'immagine di qualità più bassa. |
| D2D1_POINTDIFFUSE_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_POINTDIFFUSE_SCALE_MODE_CUBIC | Usa 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_POINTDIFFUSE_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 di piccoli incrementi le immagini con pochi pixel. |
| D2D1_POINTDIFFUSE_SCALE_MODE_ANISOTROPIC | Usa il filtro anisotropico per campionare un modello in base alla forma trasformata della bitmap. |
| D2D1_POINTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC | Usa un kernel cubico di dimensioni variabili di alta qualità per eseguire una riduzione preliminare della scala dell'immagine, qualora sia coinvolto un ridimensionamento 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 è impostato a D2D1_POINTDIFFUSE_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 |