Delen via


Meerdere renderdoelen (Direct3D 9)

Meerdere renderdoelen (MRT) verwijst naar de mogelijkheid om meerdere oppervlakken weer te geven (zie IDirect3D9Surface) met één tekenoproep. Deze oppervlakken kunnen onafhankelijk van elkaar worden gemaakt. Renderdoelen kunnen worden ingesteld met IDirect3DDevice9::SetRenderTarget.

Meerdere renderdoelen hebben de volgende beperkingen:

  • Alle renderdoeloppervlakken die samen worden gebruikt, moeten dezelfde bitdiepte hebben, maar kunnen verschillende indelingen hebben, tenzij de D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS cap is ingesteld.

  • Alle oppervlakken van een meervoudig renderdoel moeten dezelfde breedte en hoogte hebben.

  • Sommige implementaties kunnen geen arceringsbewerkingen na pixel uitvoeren op meerdere renderdoelen, waaronder: geen dithering, alfatest, geen fogging, geen blending of maskering, behalve de z-test en stenciltest. Apparaten die post-pixel shader-bewerkingen kunnen ondersteunen, stellen de cap-bit in op D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING.

    Wanneer de D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING-cap is ingesteld, moet u eerst de IDirect3D9::CheckDeviceFormat raadplegen met het USAGE_QUERY_POSTPIXELSHADER_BLENDING resultaat voor de specifieke surface-indeling. Als dit onwaar is, zijn er geen bewerkingen voor het combineren van post-pixel shader beschikbaar voor die specifieke surface-indeling. Indien waar, wordt verwacht dat het apparaat dezelfde status toepast op alle gelijktijdige renderdoelen als volgt:

    • Alfamix: De kleurwaarde in oCi wordt gecombineerd met het ith renderdoel.
    • Alfatest: Vergelijking vindt plaats met oC0. Als de vergelijking mislukt, wordt de pixeltest beëindigd voor alle renderdoelen.
    • Mist: Render doel 0 wordt mist. Andere renderdoelen zijn niet gedefinieerd. Implementaties kunnen ervoor kiezen om ze allemaal met dezelfde status te misten.
    • Dithering: Niet gedefinieerd.
  • Er wordt geen antialiasing ondersteund.

  • Sommige implementaties passen het schrijfmasker voor uitvoer (D3DRS_COLORWRITEENABLE) niet toe. Die kunnen, onafhankelijke kleur schrijfmaskers hebben. Dit wordt uitgedrukt met behulp van een nieuwe mogelijkheidsbit. Het aantal onafhankelijke schrijfmaskers voor kleuren is gelijk aan het maximum aantal elementen dat het apparaat kan gebruiken.

Nieuwe hardwarelimieten:

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-