Syntax der Effektvariablen (Direct3D 10)
Eine Effektvariable wird mit der folgenden Syntax deklariert.
Syntax
DataTypeVariableName [ : SemanticName ] <Anmerkungen>;
Name | BESCHREIBUNG |
---|---|
DataType | Beliebiger Basis- oder Texturtyp. |
VariableName | Eine ASCII-Zeichenfolge, die den Namen der Effektvariable eindeutig identifiziert. |
SemanticName | Eine ASCII-Zeichenfolge, die zusätzliche Informationen darüber angibt, wie eine Variable verwendet werden soll. Eine Semantik ist eine ASCII-Zeichenfolge, die entweder ein vordefinierter Systemwert oder eine benutzerdefinierte Zeichenfolge sein kann. |
Anmerkungen | Eine oder mehrere vom Benutzer bereitgestellte Informationen (Metadaten), die vom Effektsystem ignoriert werden. Informationen zur Syntax finden Sie unter Anmerkungssyntax (Direct3D 10). |
Eine Effektvariable, die außerhalb aller Funktionen deklariert wird, gilt als global im Bereich; innerhalb einer Funktion deklarierte Variablen sind lokal für diese Funktion.
Beispiel
Das BasicHLSL10-Beispiel verwendet globale Variablen ohne Semantik für Materialfarben, Lichteigenschaften und Transformationsmatrizen.
In diesem Beispiel werden globale Effektvariablen veranschaulicht.
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 diesem Beispiel werden Effektvariablen veranschaulicht, die für eine Shaderfunktion lokal sind.
VS_OUTPUT RenderSceneVS( ... )
{
float3 vNormalWorldSpace;
float4 vAnimatedPos;
// shader body
}
In diesem Beispiel werden Funktionsparameter mit Semantik veranschaulicht.
VS_OUTPUT RenderSceneVS( float4 vPos : SV_POSITION,
float3 vNormal : NORMAL,
float2 vTexCoord0 : TEXCOORD0,
uniform int nNumLights,
uniform bool bTexture,
uniform bool bAnimate )
{
...
}
In diesem Beispiel wird das Deklarieren einer Texturvariable veranschaulicht.
Texture2D g_MeshTexture; // Color texture for mesh
Das Sampling einer Textur erfolgt mit einem Textur-Sampler. Informationen zum Einrichten eines Samplers in einem Effekt finden Sie im Samplertyp.
Zugehörige Themen