Syntaxe de la déclaration de fragment (Direct3D 9 HLSL)

Chaque fonction HLSL (High Level Shader Language) de Microsoft peut être convertie en fragment de nuanceur avec l’ajout d’une déclaration de fragment.

Syntaxe

fragmentKeyword FragmentName = compile_fragment shaderProfile FunctionName();

où :

Valeur Description
fragmentKeyword Mot clé requis. Pixelfragment ou vertexfragment.
FragmentName Chaîne de texte ASCII qui spécifie le nom du fragment compilé.
fragment de compilation _ Mot clé requis.
shaderProfile Modèle de nuanceur à compiler. Tout profil de nuanceur de sommets valide (consultez D3DXGetVertexShaderProfile) ou profil de nuanceur de pixels (voir D3DXGetPixelShaderProfile).
Nomfonction () Nom de la fonction de nuanceur, suivi de parenthèses.

Les paramètres de fragment partagés sont marqués en ajoutant un _ préfixe’r’à leur sémantique.

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();

Dans cet exemple, les _ sémantiques r PosWorld et r _ NormalWorld identifient que ces deux paramètres sont des paramètres partagés parmi d’autres fragments.

Notes

L’éditeur de liens de fragment était une technologie Microsoft Direct3D 9 dans D3DX 9. Fragment Linker était un outil (Flink.exe), une API D3DX 9 et une amélioration HLSL. L’éditeur de liens de fragment a été supprimé depuis la version du SDK DirectX du 2009 août. L’éditeur de liens fragment n’est jamais appliqué à Microsoft Direct3D 10, Microsoft Direct3D 10,1 ou Microsoft Direct3D 11.

Shader Model 3 (DirectX HLSL)