Freigeben über


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

 

Shadermodell 4