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


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.

közvetlen3d lineáris köd 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.

közvetlen3d exponenciális köd 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.

közvetlen3d exponenciális 2 köd egyenlete

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.

ködképletek gráfja a távolság és a színmennyiség

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özvetlen3d 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.

ködtípusok