Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Használja a spot diffúz világítási effektust, hogy olyan képet hozzon létre, amely nem visszaverő felületnek tűnik, ahol a fényforrás egy irányított fénykúpra korlátozódik, és a fény minden irányba szétszóródik. Ez az effektus az alfa csatornát használja magasságtérképként, és spot fényforrással világítja meg a képet.
A kimeneti bitkép színe a világos szín, a világos pozíció és a felületi geometria eredménye. A diffúz megvilágítású képpontok alfa csatornakimenete mindig 1,0.
Az effektus CLSID azonosítója CLSID_D2D1SpotDiffuse.
Példakép
Az alábbi példa a direkt diffúz fényeffektus bemeneti és kimeneti képeit mutatja be.
Az effektus az alábbi egyenletekkel számítja ki a végső kimeneti képpontértékeket:
Hol:
- kd = diffúz világítási állandó. A felhasználó adja meg.
= normál felületi egységvektor, x és y függvény.
= a felületről a fényre mutató egységvektor.Lr, Lg, Lb = az RGB-összetevők világos színe.
Effektus tulajdonságai
| Név és index számbavételének megjelenítése | Típus és alapértelmezett érték | Leírás |
|---|---|---|
| LightPosition D2D1_SPOTDIFFUSE_PROP_LIGHT_POSITION |
D2D1_VECTOR_3F {0.0f, 0.0f, 0.0f} |
A pontfényforrás fényhelyzete. A tulajdonság egy (x, y, z) D2D1_VECTOR_3F definiálva. Az egységek eszközfüggetlen képpontokban (DIP-kben) vannak, és kötetlenek. |
| Pontátosztás D2D1_SPOTDIFFUSE_PROP_POINTS_AT |
D2D1_VECTOR_3F {0.0f, 0.0f, 0.0f} |
Ahol a reflektorfény összpontosul. A tulajdonság D2D1_VECTOR_3F formájában van kifejezve (x, y, z). Az egységek DIP-egységekben vannak, az értékek pedig nincsenek korlátozva. |
| Fókusz D2D1_SPOTDIFFUSE_PROP_FOCUS |
LEBEG 1.0f |
A reflektorfény középpontja. Ez a tulajdonság egység nélküli, és 0 és 200 között van definiálva. |
| Határoló kúp szög D2D1_SPOTDIFFUSE_PROP_KORLÁTOZÓ_KÚPSZÖG |
LEBEG 90,0f |
Az a kúpszög, amely korlátozza azt a régiót, ahol a fény ki van vetítve. A kúpon kívül nincs fény. A korlátozó kúp szöge a spotlámpa tengely (a LightPosition és PointsAt tulajdonságok közötti tengely) és a spotlámpa kúp közötti szög. Ez a tulajdonság fokban van definiálva, és 0 és 90 fok között kell lennie. |
| Diffúziós állandó D2D1_SPOTDIFFUSE_PROP_DIFFÚZ_KONSTANS |
LEBEG 1.0f |
A diffúz visszaverődés aránya a bejövő fény mennyiségével. Ennek a tulajdonságnak 0 és 10 000 közöttinek kell lennie, és egység nélkülinek kell lennie. |
| SurfaceScale D2D1_SPOTDIFFUSE_PROP_FELÜLETI_SKÁLA |
LEBEG 1.0f |
A skálázási tényező a Z irányban. A felületi skálának egység nélkülinek kell lennie, és 0 és 10 000 közöttinek kell lennie. |
| Szín D2D1_SPOTDIFFUSE_PROP_COLOR |
D2D1_VECTOR_3F {1.0f, 1.0f, 1.0f} |
A bejövő fény színe. Ez a tulajdonság Vektor 3 (R, G, B) néven érhető el, és az LR, LG, LBkiszámítására szolgál. |
| KernelEgységhossz D2D1_SPOTDIFFUSE_PROP_KERNEL_UNIT_LENGTH |
D2D1_VECTOR_2F {1.0f, 1.0f} |
A Sobel-kernel egy elemének mérete, amellyel az X és Y irányban normál felületet hoz létre. Ez a tulajdonság a Sobel-gradiens dx és dy értékeire lesz leképezve. Ez a tulajdonság egy D2D1_VECTOR_2F (kerneregység hossza X, kerneregység hossza Y), és a (DIP/kerneregység) van megadva. Az effektus kétvonalas interpolációval skálázza a bitképet a kernelelemek méretének megfelelően. |
| Méretezési mód D2D1_SPOTDIFFUSE_PROP_SCALE_MODE |
D2D1_SPOTDIFFUSE_SCALE_MODE D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR |
Az interpolációs mód, amelyet az effektus a rendszerkép megfelelő kernelegységhosszra történő skálázásához használ. Hat skálázási mód van, amelyek minőségben és sebességben is mozognak. További információt Skálázási módok című témakörben talál. |
Méretezési módok
| Felsorolás | Leírás |
|---|---|
| D2D1_SPOTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR | Mintavételezi a legközelebbi pontot, és azt használja. Ez a mód kevesebb feldolgozási időt használ, de a legalacsonyabb minőségű képet adja ki. |
| D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR | Négypontos mintát és lineáris interpolációt használ. Ez a mód jobb minőségű képet ad ki, mint a legközelebbi szomszéd. |
| D2D1_SPOTDIFFUSE_SCALE_MODE_CUBIC (Kubikus interpolációs mód a Spot Diffuse esetében) | 16 mintavételes kubikus kernel használata az interpolációhoz. Ez a mód a legtöbb feldolgozási időt használja, de jobb minőségű képet ad ki. |
| D2D1_SPOTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR | Egyetlen képponton belül 4 lineáris mintát használ a jó élelsimításhoz. Ez a mód alkalmas arra, hogy kis mennyiségekkel lefelé skálázható néhány képpontos képeken. |
| D2D1_SPOTDIFFUSE_SKÁLÁZÁSI_MÓD_ANIZOTRÓP | Anizotróp szűréssel mintát vesz a bitkép átalakított alakjának megfelelően. |
| D2D1_SPOTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC | Változó méretű, kiváló minőségű köbkernelt használva előre leskálázza a képet, ha az átalakítási mátrix skálázást tartalmaz. Ezután a végső kimenethez a köbinterpolációs módot használja. |
Jegyzet
Ha nem választ módszert, az effekt alapértelmezés szerint a D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR beállítást alkalmazza.
Követelmények
| Követelmény | Érték |
|---|---|
| Minimálisan támogatott ügyfél | Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások] |
| Minimálisan támogatott kiszolgáló | Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások] |
| Fejléc | d2d1effects.h |
| Könyvtár | d2d1.lib, dxguid.lib |