Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Syftet med stream-output-fasen är att kontinuerligt mata ut (eller strömma) hörndata från geometri-skuggningssteget (eller hörnskuggningssteget om geometri-skuggningssteget är inaktivt) till en eller flera buffertar i minnet (se Komma igång med Stream-Output stage).
Stream-output-fasen (SO) finns i pipelinen direkt efter geometri-shader-stadiet och precis före rastreringssteget, som du ser i följande diagram.
Data som strömmas ut till minnet kan läsas tillbaka till pipelinen i ett efterföljande återgivningspass eller kopieras till en mellanlagringsresurs (så att den kan läsas av processorn). Mängden data som strömmas ut kan variera. ID3D11DeviceContext::D rawAuto API är utformat för att hantera data utan att behöva fråga (GPU) om mängden data som skrivs.
När en triangel eller linjeremsa är bunden till indata-assembler-stadiet konverteras varje remsa till en lista innan de strömmas ut. Hörn skrivs alltid ut som fullständiga primitiver (till exempel 3 hörn i taget för trianglar); ofullständiga primitiver strömmas aldrig ut. Primitiva typer med angränsande tar bort angränsande data innan data strömmas ut.
Det finns två sätt att mata in strömmande data i pipelinen:
- Stream-output-data kan matas tillbaka till indata-assembler-fasen.
- Stream-output-data kan läsas av programmerbara skuggningar med hjälp av belastningsfunktioner (till exempel Läs in).
Om du vill använda en buffert som en strömutdataresurs skapar du bufferten med flaggan D3D11_BIND_STREAM_OUTPUT. Stream-output-fasen stöder upp till 4 buffertar samtidigt.
- Om du strömmar data till flera buffertar kan varje buffert bara samla in ett enda element (upp till 4 komponenter) med data per hörn, med en underförstådd datasteg som är lika med elementbredden i varje buffert (kompatibelt med hur enstaka elementbuffertar kan bindas till indata i skuggningssteg). Om buffertarna dessutom har olika storlekar stoppas skrivning så snart någon av buffertarna är full.
- Om du strömmar data till en enda buffert kan bufferten samla in upp till 64 skalärkomponenter av data per hörn (256 byte eller mindre) eller så kan hörnsteget vara upp till 2 048 byte.
I det här avsnittet
| Ämne | Beskrivning |
|---|---|
|
Komma igång med Stream-Output Stage |
I det här avsnittet beskrivs hur du använder en geometriskuggning med dataströmutdatasteget. |