Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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é obligatoire. Pixelfragment ou vertexfragment. |
| FragmentName | Chaîne de texte ASCII qui spécifie le nom du fragment compilé. |
| compile_fragment | Mot clé obligatoire. |
| shaderProfile | Modèle de nuanceur sur lequel compiler. Tout profil de nuanceur de vertex valide (voir D3DXGetVertexShaderProfile) ou profil de nuanceur de pixels (voir D3DXGetPixelShaderProfile). |
| FunctionName() | Nom de la fonction nuanceur, suivi de parenthèses. |
Les paramètres de fragment partagé 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, la sémantique r_PosWorld et r_NormalWorld identifient que ces deux paramètres sont des paramètres partagés entre d’autres fragments.
Notes
Fragment linker était une technologie Microsoft Direct3D 9 dans D3DX 9. L’éditeur de liens fragments était un outil (Flink.exe), une API D3DX 9 et une amélioration HLSL. L’éditeur de liens de fragments a été supprimé à partir de la version d’août 2009 du Kit de développement logiciel (SDK) DirectX. L’éditeur de liens fragments n’a jamais été appliqué à Microsoft Direct3D 10, Microsoft Direct3D 10.1 ou Microsoft Direct3D 11.
Rubriques connexes