Ködképletek (Direct3D 9)
A C++ alkalmazások szabályozhatják, hogy a köd hogyan befolyásolja a jelenetben lévő objektumok színét azáltal, hogy megváltoztatja, hogy a Microsoft Direct3D hogyan számítja ki a ködhatásokat távolról. A D3DFOGMODE számbavételi típus a három ködképletet azonosító tagokat tartalmazza. Minden képlet egy ködtényezőt számít ki a távolság függvényeként, az alkalmazás által megadott paramétereket figyelembe véve.
Lineáris köd
Ez az alábbi D3DFOG_LINEAR egyenlettel van beállítva.
egyenlete
hol
- a start az a távolság, amelyen a ködhatások kezdődnek.
- vége az a távolság, amelyen a ködhatások már nem növekednek.
- d a mélységet vagy a nézőponttól való távolságot jelöli. Tartományalapú köd esetén a d érték a kamera helyzete és a csúcspont közötti távolság. Nem tartományalapú köd esetén a d érték a Z-koordináta abszolút értéke a kameratérben.
Exponenciális köd
A lineáris és exponenciális képletek mind a képpontok ködében, mind a csúcsok ködében támogatottak.
Ez az alábbi D3DFOG_EXP egyenlettel van beállítva.
egyenlete
hol
- e a természetes logaritmusok alapja (körülbelül 2,71828).
- a sűrűség egy tetszőleges ködsűrűség, amely 0,0 és 1,0 között lehet.
- d a mélységet vagy a nézőponttól való távolságot jelöli a korábban leírtak szerint.
Ez az alábbi D3DFOG_EXP2 egyenlettel van beállítva.
hol
- e a fent említett természetes logaritmusok alapja.
- a sűrűség egy tetszőleges ködsűrűség, amely a fent leírtak szerint 0,0 és 1,0 közötti lehet.
- d a mélységet vagy a nézőponttól való távolságot jelöli a fent leírtak szerint.
Jegyzet
A rendszer a ködtényezőt a csúcsok spekuláris színének alfa-összetevőjében tárolja. Ha az alkalmazás saját átalakítást és megvilágítást végez, manuálisan is beszúrhat ködtényező-értékeket, amelyeket a rendszer a renderelés során alkalmaz.
Az alábbi grafikon ezeket a képleteket mutatja be, a képletparaméterekhez hasonlóan gyakori értékeket használva.
D3DFOG_LINEAR 1,0 az első és a 0,0 a végén. A mérés nem a közeli vagy távoli síkokhoz képest történik.
Amikor a Direct3D ködeffektusokat számít ki, az alábbi keverési egyenletben az előző egyenletek egyikéből származó ködtényezőt használja.
ködeffektusainak egyenlete
Ez a képlet hatékonyan skálázza az aktuális C poligon színét az f ködtényezővel, és hozzáadja a terméket a C ködszínhez, a ködtényező bitenkénti inverzével skálázva. Az eredményként kapott színérték a köd színének és az eredeti színnek a távolság tényezője. A képlet a Microsoft DirectX 7.0-s és újabb verzióiban támogatott összes eszközre vonatkozik. Az örökölt rámpa-eszköz esetében a ködfaktor a diffúz és a spekuláris színösszetevőket skálázza, a 0,0 és 1,0 tartományba szorítva, beleértve a skálázást. A ködfaktor általában 1,0-kor kezdődik a közeli síkon, és a távoli síkon 0,0-ra csökken.
Kapcsolódó témakörök