Compartilhar via


Sintaxe de declaração de fragmento (Direct3D 9 HLSL)

Cada função HLSL (Linguagem de Sombreador de Alto Nível) da Microsoft pode ser convertida em um fragmento de sombreador com a adição de uma declaração de fragmento.

Sintaxe

fragmentKeyword FragmentName = compile_fragment shaderProfile FunctionName();

em que:

Valor Descrição
fragmentKeyword Palavra-chave necessária. Pixelfragment ou vérticefragment.
FragmentName Uma cadeia de caracteres de texto ASCII que especifica o nome do fragmento compilado.
compile_fragment Palavra-chave necessária.
shaderProfile O modelo de sombreador no qual compilar. Qualquer perfil de sombreador de vértice válido (consulte D3DXGetVertexShaderProfile) ou perfil de sombreador de pixel (consulte D3DXGetPixelShaderProfile).
FunctionName() O nome da função de sombreador, seguido por parênteses.

 

Os parâmetros de fragmento compartilhados são marcados pela adição de um prefixo 'r_' à semântica.

void AmbientDiffuse( float3 vPosWorld: r_PosWorld,
                     float3 vNormalWorld: r_NormalWorld,
                     out float4 vColor: COLOR0 )
{  
    // Compute the light vector
    float3 vLight = normalize( g_vLightPosition - vPosWorld );
    
    // Compute the ambient and diffuse components of illumination
    vColor = g_vLightColor * g_vMaterialAmbient;
    vColor += g_vLightColor * g_vMaterialDiffuse * saturate( dot( vLight, vNormalWorld ) );
}
vertexfragment AmbientDiffuseFragment = compile_fragment vs_1_1 AmbientDiffuse();

Neste exemplo, a semântica r_PosWorld e r_NormalWorld identificam que esses dois parâmetros são parâmetros compartilhados entre outros fragmentos.

Observação

O vinculador de fragmento era uma tecnologia do Microsoft Direct3D 9 no D3DX 9. O vinculador de fragmento era uma ferramenta (Flink.exe), uma API D3DX 9 e um aprimoramento de HLSL. O vinculador de fragmento foi removido a partir da versão do SDK do DirectX de agosto de 2009. O vinculador de fragmento nunca se aplicou ao Microsoft Direct3D 10, Microsoft Direct3D 10.1 ou Microsoft Direct3D 11.

 

Modelo de Sombreador 3 (DirectX HLSL)