Tipo de Sombreador

A sintaxe para declarar uma variável de sombreador em um efeito mudou de Direct3D 9 para Direct3D 10.

Tipo de sombreador para Direct3D 10

Declare uma variável de sombreador dentro de uma passagem de efeito (no Direct3D 10) usando a sintaxe de tipo de sombreador:

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

Parâmetros

Item Descrição
SetXXXShader
A chamada à API do Direct3D que cria o objeto de sombreador. Pode ser: SetPixelShader ou SetGeometryShader ou SetVertexShader.
ShaderTarget
O modelo de sombreador no qual compilar. Isso é válido para qualquer destino, incluindo todos os destinos do Direct3D 9 mais os destinos do modelo de sombreador 4 : vs_4_0, gs_4_0 e ps_4_0.
ShaderFunction
Uma cadeia de caracteres ASCII que contém o nome da função de ponto de entrada do sombreador; essa é a função que inicia a execução quando o sombreador é invocado. O (...) representa os argumentos do sombreador; esses são os mesmos argumentos passados para as APIs de criação do sombreador: VSSetShader ou GSSetShader ou PSSetShader.

Exemplo

Aqui está um exemplo que cria um sombreador de vértice e um objeto de sombreador de pixel, compilados para um modelo de sombreador específico. No exemplo do Direct3D 10, não há sombreador de geometria, portanto, o ponteiro é definido como 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 uma variável de sombreador dentro de uma passagem de efeito (para Direct3D 9) usando a sintaxe de tipo de sombreador:

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

Parâmetros

Item Descrição
XXXShader
Uma variável de sombreador, que representa o sombreador compilado. Pode ser: PixelShader ou VertexShader.
ShaderTarget
O modelo de sombreador no qual compilar ; depende do tipo de variável de sombreador.
ShaderFunction(...)
Uma cadeia de caracteres ASCII que contém o nome da função de ponto de entrada do sombreador; essa é a função que inicia a execução quando o sombreador é invocado. O (...) representa os argumentos do sombreador; esses são os mesmos argumentos passados para as APIs de criação do sombreador: SetVertexShader ou SetPixelShader.

Exemplo

Aqui está um exemplo de um sombreador de vértice e um objeto de sombreador de pixel, compilados para um modelo de sombreador específico.

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

Confira também

Tipos de dados (DirectX HLSL)