Compartilhar via


Sintaxe da função Effect (Direct3D 10)

Uma função de efeito é escrita em HLSL e é declarada com a sintaxe a seguir.

Sintaxe

ReturnType FunctionName ( [ ArgumentList ] )

{

\[ *Statements* \]

};

Nome Descrição
Tipoderetorno Qualquer tipo HLSL
FunctionName Uma cadeia de caracteres ASCII que identifica exclusivamente o nome da função de sombreador.
Argumentlist Um ou mais argumentos, separados por vírgulas (consulte Argumentos de função (DirectX HLSL)).
Instruções Uma ou mais instruções (consulte Instruções (DirectX HLSL)) que compõem o corpo da função. Se uma função for definida sem um corpo, ela será considerada um protótipo; e devem ser redefinidos com um corpo antes do uso.

 

Uma função de efeito pode ser um sombreador ou pode ser simplesmente uma função chamada por um sombreador. Uma função é identificada exclusivamente por seu nome, os tipos de seus parâmetros e a plataforma de destino; portanto, as funções podem ser sobrecarregadas. Qualquer função HLSL válida deve se ajustar a esse formato; para obter uma lista mais detalhada de sintaxe para funções HLSL, consulte Functions (DirectX HLSL).

Exemplo

O exemplo BasicHLSL10 usa um sombreador de pixel e um sombreador de vértice. A função de sombreador de pixel é chamada RenderScenePS e é mostrada abaixo.

       
PS_OUTPUT RenderScenePS( VS_OUTPUT In,
                         uniform bool bTexture ) 
{ 
    PS_OUTPUT Output;

    // Lookup mesh texture and modulate it with diffuse
    if( bTexture )
        Output.RGBColor = g_MeshTexture.Sample(MeshTextureSampler, In.TextureUV) *  
                              In.Diffuse;
    else
        Output.RGBColor = In.Diffuse;

    return Output;
}

Formato de efeito