Share via


效果變數語法 (Direct3D 10)

效果變數會以下列語法宣告。

Syntax

DataTypeVariableName [ : SemanticName ] <Annotations> ;

名稱 描述
DataType 任何 基本紋理 類型。
VariableName 可唯一識別效果變數名稱的 ASCII 字串。
SemanticName ASCII 字串,表示應如何使用變數的其他資訊。 語意是 ASCII 字串,可以是預先定義的系統值或自訂使用者字串。
註解 一或多個使用者提供的資訊, (效果系統忽略的中繼資料) 。 如需語法,請參閱 注釋語法 (Direct3D 10)

 

在所有函式之外宣告的效果變數會視為範圍中的全域;在函式內宣告的變數是該函式的區域變數。

範例

BasicHLSL10 範例會使用全域變數,而沒有材質色彩、淺色屬性和轉換矩陣的語意。

此範例說明全域效果變數。

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

本範例說明著色器函式的局部效果變數。

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

    // shader body
}

此範例說明具有語意的函式參數。

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

此範例說明宣告紋理變數。

Texture2D g_MeshTexture;            // Color texture for mesh

取樣紋理是使用紋理取樣器來完成。 若要在效果中設定取樣器,請參閱 取樣器類型

效果格式