Compartir a través de


Cómo: Indexar varios flujos de salida

En el modelo de sombreador 5, un sombreador de geometría puede admitir hasta 4 secuencias independientes. Esto significa que un único sombreador puede generar entre uno y cuatro flujos de salida, dependiendo del número de secuencias declaradas.

Para indexar varios flujos de salida

  1. Defina un flujo de datos mediante un tipo de plantilla de secuencia.

        inout PointStream<OutVertex1> myStream1, 
    
  2. Defina un segundo flujo de datos mediante un tipo de plantilla de secuencia.

        inout PointStream<OutVertex2> myStream2 )
    
  3. Genera datos en secuencias (o ambas) mediante las funciones intrínsecas del objeto de salida de flujo (como Append o RestartStrip).

    void MyGS( 
        InVertex verts[2], 
        inout PointStream<OutVertex1> myStream1, 
        inout PointStream<OutVertex2> myStream2 )
    {
        OutVertex1 myVert1 = TransformVertex1( verts[0] );
        OutVertex2 myVert2 = TransformVertex2( verts[1] );
        myStream1.Append( myVert1 );
        myStream2.Append( myVert2 );
    }
    

Al usar un único flujo de salida, puede emitir franjas de triángulos, franjas de líneas o listas de puntos. Al almacenar franjas de triángulos y líneas en el búfer de salida de flujo, se expanden a listas de triángulos y líneas, respectivamente. También puede rasterizar una secuencia y no enviarla a un búfer de memoria.

Al usar varios flujos de salida, todos los flujos deben contener puntos y se puede enviar hasta un flujo de salida al rasterizador. Normalmente, una aplicación no rasterizará ninguna secuencia.

Después de transmitir datos a un búfer, puede usar esos datos para representar cualquier tipo primitivo, no solo el tipo primitivo que usó para rellenar el búfer.

La salida total del sombreador de geometría se limita a 1024 escalares. Cuando existen varias secuencias, el número de escalares se calcula a partir del tipo de flujo más grande multiplicado por el número máximo de vértices.

Diferencias entre el modelo de sombreador 4 y el modelo de sombreador 5:
Modelo de sombreador 4:

  • El número máximo de escalares para la salida del flujo es 64.
  • La máscara de registro por componente debe coincidir entre el intervalo de índices.
Modelo de sombreador 5:
  • El número máximo de escalares para la salida del flujo es 128.
  • La máscara de registro por componente no necesita coincidir entre el intervalo de índices.
  • La indexación dinámica de salidas debe ser legal en todos los flujos.
  • No es necesario que los modos de interpolación coincidan con las secuencias.

Características del sombreador de geometría