Sintassi della variabile di effetto (Direct3D 10)
Una variabile di effetto viene dichiarata con la sintassi seguente.
Sintassi
DataTypeVariableName [ : SemanticName ] <Annotations>;
Nome | Descrizione |
---|---|
DataType | Qualsiasi tipo di trama o di base. |
VariableName | Stringa ASCII che identifica in modo univoco il nome della variabile dell'effetto. |
SemanticName | Stringa ASCII che indica informazioni aggiuntive sulla modalità di utilizzo di una variabile. Una semantica è una stringa ASCII che può essere un valore di sistema predefinito o una stringa utente personalizzata. |
Annotazioni | Una o più informazioni fornite dall'utente (metadati) ignorate dal sistema dell'effetto. Per la sintassi, vedere Sintassi delle annotazioni (Direct3D 10).For syntax, see Annotation Syntax (Direct3D 10). |
Una variabile di effetto dichiarata all'esterno di tutte le funzioni viene considerata globale nell'ambito; le variabili dichiarate all'interno di una funzione sono locali per tale funzione.
Esempio
L'esempio BasicHLSL10 usa variabili globali senza semantica per colori materiali, proprietà di luce e matrici di trasformazione.
In questo esempio vengono illustrate le variabili di effetto globale.
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
In questo esempio vengono illustrate le variabili di effetto locali di una funzione shader.
VS_OUTPUT RenderSceneVS( ... )
{
float3 vNormalWorldSpace;
float4 vAnimatedPos;
// shader body
}
In questo esempio vengono illustrati i parametri di funzione con semantica.
VS_OUTPUT RenderSceneVS( float4 vPos : SV_POSITION,
float3 vNormal : NORMAL,
float2 vTexCoord0 : TEXCOORD0,
uniform int nNumLights,
uniform bool bTexture,
uniform bool bAnimate )
{
...
}
Questo esempio illustra la dichiarazione di una variabile di trama.
Texture2D g_MeshTexture; // Color texture for mesh
Il campionamento di una trama viene eseguito con un campionatore di trama. Per configurare un campionatore in un effetto, vedere il tipo di campionatore.
Argomenti correlati