Sintaxis de la función Effect (Direct3D 10)

Una función de efecto se escribe en HLSL y se declara con la siguiente sintaxis.

Sintaxis

ReturnTypeFunctionName ( [ ArgumentList ] )

{

\[ *Instrucciones* \]

};

Nombre Descripción
ReturnType Cualquier tipo HLSL
FunctionName Cadena ASCII que identifica de forma única el nombre de la función de sombreador.
ArgumentList Uno o varios argumentos, separados por comas (vea Argumentos de función (DirectX HLSL)).
Instrucciones Una o varias instrucciones (vea Instrucciones (DirectX HLSL)) que componen el cuerpo de la función. Si una función se define sin un cuerpo, se considera un prototipo; y se deben redefinir con un cuerpo antes de su uso.

 

Una función de efecto puede ser un sombreador o simplemente puede ser una función a la que llama un sombreador. Una función se identifica de forma única por su nombre, los tipos de sus parámetros y la plataforma de destino; por lo tanto, las funciones se pueden sobrecargar. Cualquier función HLSL válida debe ajustarse a este formato; para obtener una lista más detallada de la sintaxis de las funciones HLSL, vea Functions (DirectX HLSL).

Ejemplo

El ejemplo BasicHLSL10 usa un sombreador de píxeles y un sombreador de vértices. La función de sombreador de píxeles se denomina RenderScenePS y se muestra a continuación.

       
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 efecto