Dela via


Rastreringsordningsvyer

Rastreringsordningsvyer (ROV: er) tillåter pixelskuggningskod att markera UAV-bindningar med en deklaration som ändrar de normala kraven för ordningen på grafikpipelines resultat för UAV:er. Detta gör det möjligt för OIT-algoritmer (Order Independent Transparency) att fungera, vilket ger mycket bättre återgivningsresultat när flera transparenta objekt ligger i linje med varandra i en vy.

Överblick

Standardgrafikpipelines kan ha problem med att korrekt sammanställa flera texturer som innehåller transparens. Föremål som trådstängsel, rök, eld, vegetation och färgat glas använder transparens för att få önskad effekt. Problem uppstår när flera texturer som innehåller transparens är i linje med varandra (rök framför ett staket framför en glasbyggnad som innehåller vegetation, som ett exempel). Rastreringsordervyer (ROV: er) gör det möjligt för underliggande OIT-algoritmer att använda funktioner i maskinvaran för att försöka lösa transparensordningen korrekt. Transparens hanteras av pixelskuggaren.

Rastreringsordningsvyer (ROV: er) tillåter pixelskuggningskod att markera UAV-bindningar med en deklaration som ändrar de normala kraven för ordningen på grafikpipelines resultat för UAV:er.

ROV:er garanterar ordningen på UAV-åtkomster för alla par överlappande pixelskuggningsanrop. I det här fallet innebär "överlappande" att anropen genereras av samma anrop och delar samma pixelkoordinat när de är i pixelfrekvenskörningsläge och samma pixel- och exempelkoordinat i exempelfrekvensläge.

Den ordning i vilken överlappande ROV-åtkomster för pixelskuggningsanrop körs är identisk med den ordning som geometrin skickas. Det innebär att FÖR överlappande pixelskuggningsanrop måste ROV-skrivningar som utförs av ett pixelskuggningsanrop vara tillgängliga för att kunna läsas av ett efterföljande anrop och får inte påverka läsningar av ett tidigare anrop. ROV-läsningar som utförs av ett pixelskuggningsanrop måste återspegla skrivningar av ett tidigare anrop och får inte återspegla skrivningar av ett efterföljande anrop. Detta är viktigt för UAV:er eftersom de uttryckligen utelämnas från garantierna för utdatainvarians som normalt anges av den fasta ordningen för grafikpipelines resultat.

Implementeringsinformation

Rastreringsordervyer (ROV: er) deklareras med följande nya HLSL-objekt (High Level Shader Language) och är endast tillgängliga för pixelskuggningen:

  • RasterizerOrderedBuffer
  • RasterizerOrderedByteAddressBuffer
  • RasterizerOrderedStructuredBuffer
  • RasterizerOrderedTexture1D
  • RasterizerOrderedTexture1DArray
  • RasterizerOrderedTexture2D
  • RasterizerOrderedTexture2DArray
  • RasterizerOrderedTexture3D

Använd dessa objekt på samma sätt som andra UAV-objekt (till exempel RWBuffer osv.).

API-sammanfattning

ROV:er är en HLSL-konstruktion som tillämpar olika beteendesemantik på UAV:er. Alla API:er som är relevanta för UAV:er är också relevanta för ROV:er. Observera att följande metod, strukturer och hjälpklass refererar till rastreringen:

Direct3D 11.3-funktioner

Shader Model 5.1