効果グループの構文 (Direct3D 11)
効果グループは、このセクションで説明する構文を使用して宣言されます。
fxgroup GroupName [ <Annotations > ]
{
TechniqueVersion TechniqueName [ <Annotations > ]
{
...
}
TechniqueVersion TechniqueName [ <Annotations > ]
{
...
}
}
パラメーター
Item | 説明 |
---|---|
fxgroup |
等しいキーワード (keyword)。 |
Groupname |
必須。 効果グループの名前を一意に識別する ASCII 文字列。 手法とは異なり、手法が一意の識別子を持っていることを確認するには、グループに名前が必要です (後述の「グループと手法」セクションを参照してください)。 |
< 注釈 > |
[in] オプション。 エフェクト システムによって無視されるユーザー指定の情報 (メタデータ) の 1 つ以上の部分。 構文については、「注釈構文 (Direct3D 11)」を参照してください。 |
TechniqueVersion |
"technique10" または "technique11" のいずれか。 Direct3D 11 の新機能 (5_0 シェーダー、BindInterfaces など) を使用する手法では、"technique11" を使用する必要があります。 |
TechniqueName |
省略可能。 効果手法の名前を一意に識別する ASCII 文字列。 |
グループと手法
fx_4_0効果との互換性を維持するために、グループは省略可能です。 すべてのグローバル手法を囲む暗黙的な NULL 名前付きグループがあります。
次の例を確認してください。
technique11 GlobalTech
{
}
fxgroup Group1
{
technique11 Tech1 { ... }
technique11 Tech2 { ... }
}
fxgroup Group2
{
technique11 Tech1 { ... }
technique11 Tech2 { ... }
}
C++ では、2 つの方法で名前で手法を取得できます。 次のコマンドは、明らかな手法を見つけます。
pEffect->GetTechniqueByName( "GlobalTech" );
pEffect->GetTechniqueByName( "|GlobalTech" );
pEffect->GetTechniqueByName( "Group1|Tech1" );
pEffect->GetTechniqueByName( "Group1|Tech2" );
pEffect->GetTechniqueByName( "Group2|Tech1" );
pEffect->GetTechniqueByName( "Group2|Tech2" );
pEffect->GetGroupByName("Group1")->GetTechniqueByName( "Tech1" );
pEffect->GetGroupByName("Group1")->GetTechniqueByName( "Tech2" );
pEffect->GetGroupByName("Group2")->GetTechniqueByName( "Tech1" );
pEffect->GetGroupByName("Group2")->GetTechniqueByName( "Tech2" );
ID3DX11Effect::GetTechniqueByName が Effects 10 と同様に動作するようにするには、定義されているすべてのグループに名前が必要です。