Syntaxe de la variable Effect (Direct3D 10)

Une variable Effect est déclarée avec la syntaxe suivante.

Syntaxe

Type de données VariableName [ : ] < Annotations SemanticName > ;

Nom Description
DataType N’importe quel type de base ou de texture .
VariableName Chaîne ASCII qui identifie de façon unique le nom de la variable d’effet.
SemanticName Chaîne ASCII qui indique des informations supplémentaires sur la façon dont une variable doit être utilisée. Une sémantique est une chaîne ASCII qui peut être une valeur système prédéfinie ou une chaîne personnalisée de l’utilisateur.
Annotations Un ou plusieurs éléments d’informations fournies par l’utilisateur (métadonnées) qui sont ignorés par le système d’effet. Pour obtenir la syntaxe, consultez syntaxe d’annotation (Direct3D 10).

Une variable Effect déclarée en dehors de toutes les fonctions est considérée comme globale dans la portée. les variables déclarées dans une fonction sont locales à cette fonction.

Exemple

L' exemple BasicHLSL10 utilise des variables globales sans sémantique pour les couleurs matérielles, les propriétés de lumière et les matrices de transformation.

Cet exemple illustre des variables d’effet global.

float4 g_MaterialAmbientColor;      // Material's ambient color
float4 g_MaterialDiffuseColor;      // Material's diffuse color
float3 g_LightDir[3];               // Light's direction in world space
float4x4 g_mWorld;                  // World matrix for object

Cet exemple illustre des variables d’effet qui sont locales à une fonction de nuanceur.

VS_OUTPUT RenderSceneVS( ... )
{
    float3 vNormalWorldSpace;
    float4 vAnimatedPos;

    // shader body
}

Cet exemple illustre les paramètres de fonction qui ont une sémantique.

VS_OUTPUT RenderSceneVS( float4 vPos : SV_POSITION,
                         float3 vNormal : NORMAL,
                         float2 vTexCoord0 : TEXCOORD0,
                         uniform int nNumLights,
                         uniform bool bTexture,
                         uniform bool bAnimate )
{
  ...
}

Cet exemple illustre la déclaration d’une variable de texture.

Texture2D g_MeshTexture;            // Color texture for mesh

L’échantillonnage d’une texture s’effectue à l’aide d’un échantillon de texture. Pour configurer un échantillonneur dans un effet, consultez le type d’échantillonneur.

Format d’effet