効果変数の構文 (Direct3D 10)

効果変数は、次の構文で宣言されます。

構文

DataTypeVariableName [ : SemanticName ] <Annotations>;

名前 説明
DataType 基本またはテクスチャの種類。
VariableName 効果変数の名前を一意に識別する ASCII 文字列。
SemanticName 変数の使用方法に関する追加情報を示す ASCII 文字列。 セマンティックは、定義済みのシステム値またはカスタム ユーザー文字列のいずれかを指定できる ASCII 文字列です。
注釈 効果システムによって無視されるユーザー指定の情報 (メタデータ) の 1 つ以上の部分。 構文については、「 注釈構文 (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

テクスチャのサンプリングは、テクスチャ サンプラーを使用して行われます。 効果でサンプラーを設定するには、 サンプラーの種類を参照してください。

効果の形式