Stream-Output-Objekt
Ein Streamausgabeobjekt ist ein vorlagenbasiertes Objekt, das Daten aus der Geometry-Shader-Phase streamt. Verwenden Sie die folgende Syntax, um ein Streamausgabeobjekt zu deklarieren.
inout StreamOutputObject<DataType>Name; |
---|
Parameter
-
StreamOutputObject<Datatype>Namen
-
Die SO-Deklaration (Stream Output Object).
Stream-Output-Objekttypen Beschreibung PointStream Eine Sequenz von Punktgrundtypen LineStream Eine Sequenz von Liniengrundtypen TriangleStream Eine Sequenz von Dreiecksgrundtypen DataType : Ausgabedatentyp; kann ein beliebiger HLSL-Datentyp sein. Muss von den spitzen Klammern umgeben sein.
Name : Variablenname; eine ASCII-Zeichenfolge, die das Objekt eindeutig identifiziert.
Beispiel
Dies ist ein Beispiel für eine Streamausgabeobjektdeklaration, die Dreiecksgrundtypen, deren Daten durch die PS_CUBEMAP_IN-Struktur definiert werden, streamt. Der geometry-Shader ist auf die Generierung von 18 Scheitelpunkten beschränkt.
struct PS_CUBEMAP_IN
{
float4 Pos : SV_POSITION; // Projection coord
float2 Tex : TEXCOORD0; // Texture coord
uint RTIndex : SV_RenderTargetArrayIndex;
};
[maxvertexcount(18)]
void main( inout TriangleStream<PS_CUBEMAP_IN> CubeMapStream, triangle PS_CUBEMAP_INT[3] )
{
...
}
Dies ist ein Codeausschnitt aus dem CubeMapGS-Beispiel.
Stream-Output-Objektmethoden
Verwenden Sie die folgende Syntax, um stream-output-object-Methoden aufzurufen.
Object.Method
Die folgenden Methoden werden implementiert.
Methoden | BESCHREIBUNG |
---|---|
Append | Anfügen von Ausgabedaten an einen vorhandenen Stream. |
RestartStrip | Beenden Sie den aktuellen primitiven Strip, und starten Sie einen neuen primitiven Strip. |
Minimales Shadermodell
Dieses Objekt wird in den folgenden Shadermodellen unterstützt.
Shadermodell | Unterstützt |
---|---|
Shadermodell 4 und höhere Shadermodelle | ja |
Zugehörige Themen