Pont-diffúz világítási effektus
A pont-diffúz világítási effektussal olyan képet hozhat létre, amely úgy tűnik, hogy nem tükröző felület, és minden irányban elszórtan jelenik meg a fény. Ez az effektus az alfa csatornát használja magasságtérképként, és pontfé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 effektushoz tartozó CLSID azonosító: CLSID_D2D1PointDiffuse. Az effektusnak a használatához adja hozzá a dxguid.lib könyvtárat a linker függőségeihez.
Példakép
Az alábbi példa a pont-diffúz fényeffektus bemeneti és kimeneti képeit mutatja be.
A diffúz világítás olyan fényre utal, amely az itt látható módon több irányban is tükröződik.
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.


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 | Leírás |
---|---|
LightPosition D2D1_POINTDIFFUSE_PROP_LIGHT_POSITION |
A pontfényforrás fényhelyzete. A tulajdonság egy D2D1_VECTOR_3F, amely (x, y, z) formában van definiálva. Az egységek eszközfüggetlen képpontokban (DIP-ekben) vannak, és nincsenek korlátozva. A típus D2D1_VECTOR_3F. Az alapértelmezett érték a következő: {0.0f, 0.0f, 0.0f}. |
Diffúz konstans D2D1_POINTDIFFUSE_PROP_DIFFUSE_CONSTANT |
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. A típus FLOAT. Az alapértelmezett érték 1,0f. |
SurfaceScale D2D1_POINTDIFFUSE_PROP_SURFACE_SCALE |
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. A típus FLOAT. Az alapértelmezett érték 1,0f. |
Szín D2D1_POINTDIFFUSE_PROP_COLOR |
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. A típus D2D1_VECTOR_3F. Az alapértelmezett érték {1.0f, 1.0f, 1.0f}. |
Magegységhossz D2D1_POINTDIFFUSE_PROP_KERNEL_UNIT_LENGTH |
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 van leképezve. Ez a tulajdonság egy D2D1_VECTOR_2F (Kernel egységhossz X, Kernel egységhossz Y), és (DIP-ek/Kernel egység) formátumban van definiálva. Az effektus kétvonalas interpolációval skálázza a bitképet a kernelelemek méretének megfelelően. A típus D2D1_VECTOR_2F. Az alapértelmezett érték {1.0f, 1.0f}. |
Méretezési mód D2D1_POINTDIFFUSE_PROP_SCALE_MODE |
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. A típus D2D1_POINTDIFFUSE_SCALE_MODE. Az alapértelmezett érték a D2D1_POINTDIFFUSE_SCALE_MODE_LINEAR. |
Méretezési módok
Felsorolás | Leírás |
---|---|
D2D1_POINTDIFFUSE_SKÁLAMÓD_LEGKÖZELEBBI_SZOMSZÉD | Mintát vesz a legközelebbi pontról é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_POINTDIFFUSE_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_POINTDIFFUSE_SCALE_MODE_CUBIC | 16 mintás köbös magot használ 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_POINTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR | Egy képponton belül 4 lineáris mintát használ az élsimításhoz. Ez a mód alkalmas arra, hogy kismértékben lefelé lépcsőzzünk azokon a képeken, amelyek kevés pixellel rendelkeznek. |
D2D1_POINTDIFFUSE_SCALE_MODE_ANISOTROPIC | Anizotróp szűréssel mintát vesz a bitkép átalakított alakjának megfelelően. |
D2D1_POINTDIFFUSE_MIΝŐSÉGI_KOCKÁZATI_SKÁLA_MÓDBAN | Változó méretű, kiváló minőségű köbös magot használ, hogy előzetesen lekicsinyítse a képet, ha a skálázás része az átalakítási mátrixnak. Ezután a végső kimenethez a köbinterpolációs módot használja. |
Jegyzet
Ha nem választ ki egy módot, az effektus alapértelmezés szerint a D2D1_POINTDIFFUSE_SCALE_MODE_LINEAR lesz.
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 |