Compartir a través de


Tipo de sombreador

La sintaxis para declarar una variable de sombreador en un efecto cambió de Direct3D 9 a Direct3D 10.

Tipo de sombreador para Direct3D 10

Declare una variable de sombreador dentro de un paso de efecto (en Direct3D 10) mediante la sintaxis de tipo de sombreador:

SetPixelShader Compile( ShaderTarget, ShaderFunction ); SetGeometryShader Compile( ShaderTarget, ShaderFunction ); SetVertexShader Compile( ShaderTarget, ShaderFunction );

Parámetros

Elemento Descripción
SetXXXShader
La llamada API de Direct3D que crea el objeto de sombreador. Puede ser: SetPixelShader o SetGeometryShader o SetVertexShader.
ShaderTarget
Modelo de sombreador con el que se va a compilar. Esto es válido para cualquier destino, incluidos todos los destinos de Direct3D 9, además de los destinos del modelo de sombreador 4 : vs_4_0, gs_4_0 y ps_4_0.
ShaderFunction
Cadena ASCII que contiene el nombre de la función de punto de entrada del sombreador; esta es la función que comienza la ejecución cuando se invoca el sombreador. El (...) representa los argumentos del sombreador; estos son los mismos argumentos que se pasan a la API de creación del sombreador: VSSetShader o GSSetShader o PSSetShader.

Ejemplo

Este es un ejemplo que crea un sombreador de vértices y un objeto de sombreador de píxeles, compilado para un modelo de sombreador determinado. En el ejemplo de Direct3D 10, no hay ningún sombreador de geometría, por lo que el puntero se establece en NULL.

// Direct3D 10
technique10 Render
{
    pass P0
    {
        SetVertexShader( CompileShader( vs_4_0, VS() ) );
        SetGeometryShader( NULL );
        SetPixelShader( CompileShader( ps_4_0, PS() ) );
    }
}

Tipo de sombreador para Direct3D 9

Declare una variable de sombreador dentro de un paso de efecto (para Direct3D 9) mediante la sintaxis de tipo de sombreador:

PixelShader = compile ShaderTarget ShaderFunction(...); VertexShader = compile ShaderTarget ShaderFunction(...);

Parámetros

Elemento Descripción
XXXShader
Variable de sombreador, que representa el sombreador compilado. Puede ser: PixelShader o VertexShader.
ShaderTarget
Modelo de sombreador con el que se va a compilar; depende del tipo de variable de sombreador.
ShaderFunction(...)
Cadena ASCII que contiene el nombre de la función de punto de entrada del sombreador; esta es la función que comienza la ejecución cuando se invoca el sombreador. El (...) representa los argumentos del sombreador; estos son los mismos argumentos que se pasan a la API de creación de sombreador: SetVertexShader o SetPixelShader.

Ejemplo

Este es un ejemplo de un sombreador de vértices y un objeto de sombreador de píxeles, compilado para un modelo de sombreador determinado.

// Direct3D 9
technique RenderSceneWithTexture1Light
{
    pass P0
    {          
        VertexShader = compile vs_2_0 RenderSceneVS( 1, true, true );
        PixelShader  = compile ps_2_0 RenderScenePS( true );
    }
}

Consulte también

Tipos de datos (DirectX HLSL)