Condividi tramite


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.

Formato effetto