Freigeben über


Stream-Output-Objekt

Ein Streamausgabeobjekt ist ein vorlagenbasiertes Objekt, das Daten aus der Geometrie-Shaderstufestreamt. Verwenden Sie die folgende Syntax, um ein Streamausgabeobjekt zu deklarieren.

inout StreamOutputObject<DataType>Name;

 

Parameter

StreamOutputObject<DataType>Name

Die Deklaration des Streamausgabeobjekts (STREAM-Output Object, SO).

Stream-Output-Objekttypen Beschreibung
PointStream- Eine Abfolge von Punktgrundtypen
LineStream- Eine Abfolge von Liniengrundtypen
TriangleStream- Eine Abfolge von Dreiecksgrundtypen

 

Datentyp - Ausgabedatentyp; kann HLSL-Datentypsein. Muss von den winkeln Klammern umgeben sein.

Name - Variablenname; eine ASCII-Zeichenfolge, die das Objekt eindeutig identifiziert.

Beispiel

Dies ist ein Beispiel für eine Streamausgabeobjektdeklaration, die Dreiecksgrundtypen streamt, deren Daten durch die PS_CUBEMAP_IN-Struktur definiert werden. Der Geometrie-Shader ist auf das Generieren 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.

Methodik Beschreibung
anfügen Fügen Sie Ausgabedaten an einen vorhandenen Datenstrom an.
RestartStrip- Beenden Sie den aktuellen Grundtypstreifen, und beginnen Sie einen neuen Grundtypstreifen.

 

Minimales Shadermodell

Dieses Objekt wird in den folgenden Shadermodellen unterstützt.

Shadermodell Abgestützt
Shadermodell 4 und höherer Shadermodelle ja

 

Shadermodell 4