Pont-spekuláris fényhatás
A pont-spekuláris megvilágítási effektussal olyan képet hozhat létre, amely tükröző felületnek tűnik. Az effektus a kép alfa csatornáját használja magasságtérképként és pont fényforrásként, amelyet ön helyez el, és kiszámítja a tükrözést és a fényt a Phong világítási modell spekuláns részének megfelelően.
A kimeneti bitkép színe a világos szín, a világos pozíció és a felületi geometria eredménye. A spekuláris megvilágítású képpontok alfa csatornakimenete az adott képponthoz tartozó piros, zöld és kék csatornakimenet maximális értéke.
Az effektus CLSID azonosítója CLSID_D2D1PointSpecular.
- példakép
- Pont fényforrás
- Magasságtérkép és normál vektor
- Tükröződő fény konstans és kitevő
- Effektus tulajdonságai
- Méretezési módok
- követelmények
- Kapcsolódó témakörök
Példakép
Az alábbi példa a pont-spekuláris fényeffektus bemeneti és kimeneti képeit mutatja be.
A spekuláris fény olyan fényre utal, amely a Phong világítási modellnek megfelelően egy adott irányban tükröződik.
Az effektus az alábbi egyenletekkel számítja ki a végső kimeneti képpontértékeket:
hol
- k? = spekuláris világítási állandó.


Lr, Lg, Lb = az RGB-összetevők világos színe.
A spekuláris megvilágítási állandót a SpecularConstant tulajdonságként, a fény színét pedig a Color tulajdonságként állítja be.
Pontfényforrás
A pontfényforrás minden irányban fényt bocsát ki, mint az itt látható képen.
A fényforrás pozícióját a LightPosition tulajdonság használatával állíthatja be. Az effektus kiszámítja az L fényvektort egy pont fényforráshoz az alábbi egyenletek használatával:
ahol Light?, Lighty, és Lightz a bemeneti fény helyzete. Az effektus kiszámítja a félvektort, a Phong világítási modellben meghatározott módon, az itt található egyenlet segítségével. A világítási modell feltételezi, hogy a szemvektor,
, a (0,0,1) helyen található.
Mind az L, mind a H egységhosszúságú vektorokra van normalizálva.
Magasságtérkép és normál vektor
Az effektus létrehoz egy magasságtérképet a bemeneti képhez az alfa csatornája alapján.
A magasság (Z) összetevő kiszámítása a következő egyenlettel történik:
Az effektus kiszámítja a felületi normált, , a bemeneti bitképhez Sobel-gradienssel.
Tükörfény világítási állandó és hatványérték
A spekuláris fény a kép magasságtérképének felületéről visszaverődő fényt jelöli. Meg kell adnia a SpecularExponent tulajdonságot, amely meghatározza a bitkép spekulatív tükröződésének mennyiségét.
A nagyobb kitevők a fényesebb tárgyakat jelölik, és a fényt összpontosított formában tükrözik.
A SpecularConstant K tulajdonság? a visszavert fény mennyiségét a bejövő fény arányában határozza meg.
Effektus tulajdonságai
Név és index számbavételének megjelenítése | Leírás |
---|---|
Fénypozíció D2D1_POINTSPECULAR_PROP_LIGHT_POSITION |
A pontfényforrás fényhelyzete. A tulajdonság egy D2D1_VECTOR_3F, amely (x, y, z) formában van meghatározva. Az egységek eszközfüggetlen képpontokban (DIP-kben) vannak, az értékek pedig egység nélküliek és kötetlenek. A típus D2D1_VECTOR_3F. Az alapértelmezett érték a következő: {0.0f, 0.0f, 0.0f}. |
SpecularExponent D2D1_POINTSPECULAR_PROP_SPECULAR_EXPONENT |
A Phong világítási egyenlet tükröződési tagjának kitevője. A nagyobb érték egy tükrözőbb felületnek felel meg. Ez az érték egység nélküli, és 1,0 és 128 között kell lennie. A típus FLOAT. Az alapértelmezett érték 1,0f. |
SpecularConstant D2D1_POINTSPECULAR_PROP_SPECULAR_CONSTANT |
A spekuláris tükröződés és a bejövő fény aránya. Az érték egység nélküli, és 0 és 10 000 között kell lennie. A típus FLOAT. Az alapértelmezett érték 1,0f. |
SurfaceScale D2D1_POINTSPECULAR_PROP_SURFACE_SCALE |
A Z irányban lévő méretezési tényező a magasságtérkép létrehozásához. Az érték egység nélküli, és 0 és 10 000 között kell lennie. A típus FLOAT. Az alapértelmezett érték 1,0f. |
Szín D2D1_POINTSPECULAR_PROP_COLOR |
A bejövő fény színe. Ez a tulajdonság D2D1_VECTOR_3F (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}. |
KernelEgységhossz D2D1_POINTSPECULAR_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-színátmenet dx és dy értékeire lesz leképezve. Ez a tulajdonság egy D2D1_VECTOR_2F (kernelegység hossza X, kernelegység hossza Y), és DIP/kernelegységekben 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}. |
ScaleMode D2D1_POINTSPECULAR_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_POINTSPECULAR_SCALE_MODE. Az alapértelmezett érték a D2D1_POINTSPECULAR_SCALE_MODE_LINEAR. |
Méretezési módok
Felsorolás | Leírás |
---|---|
D2D1_POINTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR | Mintavételezi a legközelebbi egyetlen 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_POINTSPECULAR_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_POINTSPECULAR_SCALE_MODE_CUBIC | 16 köbélmintát 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_POINTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR | 4 lineáris mintát használ egy pixelben a jó minőségű élelsimításhoz. Ez a mód alkalmas kis mennyiségű csökkentésre kevés pixellel rendelkező képeken. |
D2D1_POINTSPECULAR_SKÁLAMÓD_ANIZOTRÓP | Anizotróp szűréssel mintát vesz a bitkép átalakított alakjának megfelelően. |
D2D1_POINTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC | Változó méretű, kiváló minőségű köbmag használatával előzetesen leskálázza a képet, ha az átalakítási mátrix tartalmaz skálázást. Ezután a végső kimenethez a köbinterpolációs módot használja. |
Jegyzet
Ha nem választ módot, az effektus alapértelmezésben a D2D1_POINTSPECULAR_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 |