Dela via


Fjärrspridande belysningseffekt

Använd den avlägsna diffusa belysningseffekten för att skapa en bild som verkar vara en icke-reflekterande yta där ljuskällan verkar komma från ett långt avstånd (som solen eller overheadljusen) och ljuset är utspridt i alla riktningar. Den här effekten använder alfakanalen som en höjdkarta och lyser bilden med en avlägsen ljuskälla.

Färgen på utdatabitkartan är ett resultat av ljus färg, ljus position och bildens ytgeometri. Alfakanalens utdata för varje pixel med diffus belysning är alltid 1,0.

CLSID för den här effekten är CLSID_D2D1DistantDiffuse.

Exempelbild

Exemplet här visar in- och utdatabilderna av den avlägsna diffusa belysningseffekten.

effektexempel skärmbild av in- och utdatabilderna av den avlägsna diffusa belysningseffekten.

Effektegenskaper

Visningsnamn och indexuppräkning Beskrivning
Azimut
D2D1_DISTANTDIFFUSE_PROP_AZIMUTH
Ljuskällans riktningsvinkel i XY-planet i förhållande till X-axeln i räknarklockans riktning. Enheterna är i grader och måste vara mellan 0 och 360 grader.
Typen är FLOAT.
Standardvärdet är 0,0f.
Höjd
D2D1_DISTANTDIFFUSE_PROP_ELEVATION
Ljuskällans riktningsvinkel i YZ-planet i förhållande till Y-axeln i räknareurvis riktning. Enheterna är i grader och måste vara mellan 0 och 360 grader.
Typen är FLOAT.
Standardvärdet är 0,0f.
DiffuseConstant
D2D1_DISTANTDIFFUSE_PROP_DIFFUSE_CONSTANT
Förhållandet mellan diffus reflektion och mängden inkommande ljus. Den här egenskapen måste vara mellan 0 och 10 000 och är enhetslös.
Typen är FLOAT.
Standardvärdet är 1,0f.
SurfaceScale
D2D1_DISTANTDIFFUSE_PROP_SURFACE_SCALE
Skalningsfaktorn i Z-riktningen. Ytskalan är enhetslös och måste vara mellan 0 och 10 000.
Typen är FLOAT.
Standardvärdet är 1,0f.
Färg
D2D1_DISTANTDIFFUSE_PROP_COLOR
Färgen på det inkommande ljuset. Den här egenskapen exponeras som en D2D1_VECTOR_3F (R, G, B) och används för att beräkna LR, LG, LB.
Typen är D2D1_VECTOR_3F.
Standardvärdet är {1.0f, 1.0f, 1.0f}.
KernelEnhetsLängd
D2D1_DISTANTDIFFUSE_PROP_KERNEL_UNIT_LENGTH
Storleken på ett element i Sobel-kerneln som används för att generera ytnormal i X- och Y-riktningen. Den här egenskapen mappar till dx- och dy-värdena i Sobelgradienten. Den här egenskapen är en D2D1_VECTOR_2F (Kernel Unit Length X, Kernel Unit Length Y) och definieras i (enhetsoberoende bildpunkter (DIP:er)/Kernelenhet). Effekten använder bilinearinterpolation för att skala bitmappen så att den matchar storleken på kernelelement.
Typen är D2D1_VECTOR_2F.
Standardvärdet är {1.0f, 1.0f}.
Skalningsläge
D2D1_DISTANTDIFFUSE_PROP_SCALE_MODE
Interpolationsläget som effekten använder för att skala bilden till motsvarande längd på kernelenheten. Det finns sex skalningslägen som varierar i kvalitet och hastighet.
Typen är D2D1_DISTANTDIFFUSE_SCALE_MODE.
Standardvärdet är D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR.

Skalningslägen

Uppräkning Beskrivning
D2D1_DISTANTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR Prover den närmaste enskilda punkten och använder den. I det här läget används mindre bearbetningstid, men den lägsta kvalitetsbilden matas ut.
D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR Använder ett fyrpunktsexempel och linjär interpolation. Det här läget ger en bild av högre kvalitet än närmaste granne.
D2D1_DISTANTDIFFUSE_SCALE_MODE_CUBIC Använder en 16-sampelskubisk kärna för interpolering. Det här läget använder mest bearbetningstid, men ger en bild av högre kvalitet.
D2D1_DISTANTDIFFUSE_SKALNINGS_LÄGE_MULTI_SAMPLE_LINEAR Använder 4 linjära exempel inom en enda pixel för bra kantutjämning. Det här läget är bra för att skala ned med små mängder på bilder med några bildpunkter.
D2D1_DISTANTDIFFUSE_SCALE_MODE_ANISOTROPIC Använder anisotropisk filtrering för att prova ett mönster enligt bitmappens transformerade form.
D2D1_DISTANTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC Använder en kubisk kärna med variabel storlek av hög kvalitet för att förskalera bilden när nedskalning ingår i transformationsmatrisen. Använder sedan kubikinterpoleringsläget för de slutliga utdata.

Anteckning

Om du inte väljer ett läge är effekten som standard D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR.

Krav

Krav Värde
Lägsta klient som stöds Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar]
Lägsta server som stöds Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar]
Rubrik d2d1effects.h
Bibliotek d2d1.lib, dxguid.lib

ID2D1Effect