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


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

Pixel Pipeline