Több renderelési cél (Direct3D 9)
A több renderelési cél (MRT) azt jelenti, hogy több felületre is renderelhet (lásd IDirect3D9Surface) egyetlen rajzhívással. Ezek a felületek egymástól függetlenül hozhatók létre. A renderelési célok IDirect3DDevice9::SetRenderTargethasználatával állíthatók be.
Több renderelési cél az alábbi korlátozásokkal rendelkezik:
Az együtt használt összes renderelési célfelületnek azonos bitmélységűnek kell lennie, de különböző formátumú lehet, kivéve, ha a D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS kupak be van állítva.
A több renderelési cél minden felületének azonos szélességűnek és magasságúnak kell lennie.
Egyes implementációk nem hajthatók végre képpont utáni árnyékolóműveleteket több renderelési célon, például: nincs osztás, alfateszt, nincs hibakeresés, nincs keverés vagy maszkolás, kivéve a z-tesztet és a rajzsablon-tesztet. A képpont utáni árnyékolóműveleteket támogató eszközök a cap bitet D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING értékre állítják.
A D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING cap beállításakor először az IDirect3D9::CheckDeviceFormat kell keresnie az adott felületi formátum USAGE_QUERY_POSTPIXELSHADER_BLENDING eredményével. Ha hamis, a képpont utáni árnyékolók keverési műveletei nem lesznek elérhetők az adott felületi formátumhoz. Ha igaz, az eszköz várhatóan ugyanazt az állapotot alkalmazza az összes egyidejű renderelési célra az alábbiak szerint:
- Alfa-keverék: Az oCi színértéke az ith render célértékkel van keverve.
- Alfateszt: Összehasonlítás történik az oC0-vel. Ha az összehasonlítás sikertelen, a képpontteszt az összes renderelési cél esetében leáll.
- Köd: A 0. renderelési cél le lesz omlva. A többi renderelési cél nincs meghatározva. Az implementációk dönthetnek úgy, hogy mindet ugyanazzal az állapottal használják.
- Dithering: Nem definiált.
Az antialiasing nem támogatott.
Egyes implementációk nem alkalmazzák a kimeneti írási maszkot (D3DRS_COLORWRITEENABLE). Azok, amelyek képesek, független színírási maszkokkal rendelkeznek. Ezt egy új képességbit használatával fejezzük ki. A rendelkezésre álló független színírási maszkok száma megegyezik az eszköz által használható elemek maximális számával.
Új hardverkorlátok:
D3DCAPS9.NumSimultaneousRTs
// The value is 1 for all hardware except those that
// can support this feature. It is never 0.
D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS - True if the hardware can support it
D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING - True if the hardware can support it
Kapcsolódó témakörök