Condividi tramite


Oggetto Stream-Output

Un oggetto stream-output è un oggetto basato su modelli che trasmette i dati dalla fase geometry-shader. Usare la sintassi seguente per dichiarare un oggetto stream-output.

inout StreamOutputObject<DataType>Name;

 

Parametri

StreamOutputObject<Datatype>Nome

Dichiarazione so (Stream-Output Object).

Tipi di oggetto Stream-Output Descrizione
PointStream Sequenza di primitive di punti
LineStream Sequenza di primitive di linea
TriangleStream Sequenza di primitive di triangoli

 

DataType - Tipo di dati di output; può essere qualsiasi tipo di dati HLSL. Deve essere racchiuso tra parentesi angolari.

Name - Nome variabile; stringa ASCII che identifica in modo univoco l'oggetto.

Esempio

Questo è un esempio di dichiarazione dell'oggetto di output di flusso che trasmette le primitive di triangolo i cui dati sono definiti dalla struttura PS_CUBEMAP_IN. Il geometry-shader è limitato alla generazione di 18 vertici.

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] )
{
    ...
}

Si tratta di un frammento di codice dell'esempio CubeMapGS.

Metodi dell'oggetto Stream-Output

Usare la sintassi seguente per chiamare metodi stream-output-object.

Object.Method

Vengono implementati i metodi seguenti.

Metodi Descrizione
Accoda Aggiungere dati di output a un flusso esistente.
RestartStrip Terminare la striscia primitiva corrente e avviare una nuova striscia primitiva.

 

Modello minimo shader

Questo oggetto è supportato nei modelli di shader seguenti.

Modello di shader Supportato
Modello shader 4 e versioni successive dello shader

 

Modello shader 4