Megosztás a következőn keresztül:


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.

példaeffektus képernyőképe a pont diffúz megvilágítási effektus bemeneti és kimeneti képeiről.

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.

diffúz fény minden irányban szétszórva van.

Az effektus az alábbi egyenletekkel számítja ki a végső kimeneti képpontértékeket:

kimeneti bitkép-számításokat.

Hol:

kd = diffúz világítási állandó. A felhasználó adja meg.
felület normál vektorszimbólumát. = normál felületi egységvektor, x és y függvény.
egységvektor szimbóluma. = 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 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

ID2D1Effect