Syntaxe de variable d’effet (Direct3D 10)
Une variable d’effet est déclarée avec la syntaxe suivante.
Syntaxe
DataTypeVariableName [ : SemanticName ] <Annotations>;
Nom | Description |
---|---|
DataType | Tout type de texture ou de base. |
VariableName | Chaîne ASCII qui identifie de manière 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 d’utilisateur personnalisée. |
Annotations | Un ou plusieurs éléments d’informations fournis par l’utilisateur (métadonnées) qui sont ignorés par le système d’effets. Pour la syntaxe, consultez Syntaxe d’annotation (Direct3D 10). |
Une variable d’effet déclarée en dehors de toutes les fonctions est considérée comme globale dans l’étendue ; 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 de matériau, les propriétés de lumière et les matrices de transformation.
Cet exemple illustre les 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 les variables d’effet locales d’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 est effectué avec un échantillonneur de texture. Pour configurer un échantillonneur dans un effet, consultez le type d’échantillonneur.
Rubriques connexes