Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Använd ljuseffekten spot-diffuse för att skapa en bild som verkar vara en icke-reflekterande yta där ljuskällan är begränsad till en riktad kon av ljus och ljuset är utspridt i alla riktningar. Den här effekten använder alfakanalen som en höjdkarta och belyser bilden med en spotlightkälla.
Färgen på utdatabitkartan är ett resultat av ljus färg, ljus position och ytgeometri. Alfakanalens utdata för varje pixel med diffus belysning är alltid 1,0.
CLSID för den här effekten är CLSID_D2D1SpotDiffuse.
Exempelbild
Exemplet här visar in- och utdatabilderna av den spot-diffusa belysningseffekten.
skärmbild av 
Effekten beräknar de slutliga pixelvärdena med hjälp av följande ekvationer:
Var:
- kd = diffus belysningskonstant. Anges av användaren.
= ytnormal enhetsvektor, en funktion av x och y.
= enhetsvektor som pekar från yta till ljus.Lr, Lg, Lb = ljusfärgen i RGB-komponenter.
Effektegenskaper
| Visningsnamn och indexuppräkning | Typ- och standardvärde | Beskrivning |
|---|---|---|
| LightPosition D2D1_SPOTDIFFUSE_PROP_LJUSPOSITION |
D2D1_VECTOR_3F {0.0f, 0.0f, 0.0f} |
Punktljuskällans ljusposition. Egenskapen är en D2D1_VECTOR_3F definierad som (x, y, z). Enheterna finns i enhetsoberoende bildpunkter (DIP:er) och är obundna. |
| PointsAt D2D1_SPOTDIFFUSE_PROP_POINTS_AT |
D2D1_VECTOR_3F {0.0f, 0.0f, 0.0f} |
Där spotljuset är fokuserat. Egenskapen exponeras som en D2D1_VECTOR_3F med (x, y, z). Enheterna finns i DIP:er och värdena är obundna. |
| Fokus D2D1_SPOTDIFFUSE_PROP_FOCUS (fokusparameter för spotdiffus) |
FLYTA 1.0f |
Fokus i strålkastaren. Den här egenskapen är enhetslös och definieras mellan 0 och 200. |
| LimitingConeAngle D2D1_SPOTDIFFUSE_PROP_LIMITING_CONE_ANGLE |
FLYTA 90.0f |
Konvinkeln som begränsar den region där ljuset projiceras. Inget ljus projiceras utanför konen. Den begränsande konvinkeln är vinkeln mellan punktljusaxeln (axeln mellan LightPosition och PointsAt egenskaper) och punktljuskonen. Den här egenskapen definieras i grader och måste vara mellan 0 och 90 grader. |
| DiffusKonstant D2D1_SPOTDIFFUSE_PROP_DIFFUSE_CONSTANT |
FLYTA 1.0f |
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. |
| Ytskala D2D1_SPOTDIFFUSE_PROP_SURFACE_SCALE |
FLYTA 1.0f |
Skalningsfaktorn i Z-riktningen. Ytskalan är enhetslös och måste vara mellan 0 och 10 000. |
| Färg D2D1_SPOTDIFFUSE_PROP_COLOR |
D2D1_VECTOR_3F {1.0f, 1.0f, 1.0f} |
Färgen på det inkommande ljuset. Den här egenskapen exponeras som en Vector 3 (R, G, B) och används för att beräkna LR, LG, LB. |
| KernelUnitLength D2D1_SPOTDIFFUSE_PROP_KERNEL_UNIT_LENGTH |
D2D1_VECTOR_2F {1.0f, 1.0f} |
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 Sobel-gradienten. Den här egenskapen är en D2D1_VECTOR_2F(Kernel Unit Length X, Kernel Unit Length Y) och definieras i (DIPs/Kernel Unit). Effekten använder bilinearinterpolation för att skala bitmappen så att den matchar storleken på kernelelement. |
| Skalningsläge D2D1_SPOTDIFFUSE_PROP_SCALE_MODE |
D2D1_SPOTDIFFUSE_SCALE_MODE D2D1_SPOTDIFFUSE_SKALALÄGE_LINJÄR |
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. Se Skalningslägen för mer information. |
Skalningslägen
| Uppräkning | Beskrivning |
|---|---|
| D2D1_SPOTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR | Tar prov på 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_SPOTDIFFUSE_SCALE_MODE_LINJÄR | 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_SPOTDIFFUSE_SCALE_MODE_CUBIC | Använder en kubisk kärna med 16 prover för interpolering. Det här läget använder mest bearbetningstid, men ger en bild av högre kvalitet. |
| D2D1_SPOTDIFFUSE_SCALE_MODE_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_SPOTDIFFUSE_SCALE_MODE_ANISOTROPIC | Använder anisotropisk filtrering för att prova ett mönster enligt bitmappens transformerade form. |
| D2D1_SPOTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC | Använder en kubisk kärna med variabel storlek av hög kvalitet för att förminska bilden om nedskalning ingår i transformeringsmatrisen. Använder sedan kubikinterpoleringsläget för de slutliga utdata. |
Not
Om du inte väljer ett läge ställs effekten in på D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR som standard.
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 |