共用方式為


效果群組語法 (Direct3D 11)

效果群組會使用本節中所述的語法來宣告。

fxgroup GroupName  [ <Annotations > ]
{
    TechniqueVersion TechniqueName [ <Annotations > ] 
    { 
       ...
    } 
    TechniqueVersion TechniqueName [ <Annotations > ] 
    { 
       ...
    } 
}



參數

項目 描述
fxgroup
等價關鍵字。
GroupName
必要。 可唯一識別效果群組名稱的 ASCII 字串。 不同于技術,群組必須具有名稱,以確保技術具有唯一識別碼 (請參閱下方的群組和技術一節) 。
< 注釋 >
[in] 選用。 一或多個使用者提供的資訊, (效果系統忽略的中繼資料) 。 如需語法,請參閱注釋語法 (Direct3D 11) 。
技術版本
「技術10」或「技術11」。 使用 Direct3D 11 新功能的技術 (5_0 著色器、BindInterfaces 等) 必須使用 「techniques11」。
TechniqueName
選擇性。 可唯一識別效果技術名稱的 ASCII 字串。

群組和技術

為了維持與fx_4_0效果的相容性,群組是選擇性的。 所有全域技術周圍都有隱含的 Null 命名群組。

請考慮下列範例:

technique11 GlobalTech
{
}
fxgroup Group1
{
     technique11 Tech1 { ... }
     technique11 Tech2 { ... }
}
fxgroup Group2
{
     technique11 Tech1 { ... }
     technique11 Tech2 { ... }
}

在 C++ 中,您可以透過兩種方式依名稱取得技術。 下列命令會發現明顯的技術:

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 類似,所有定義的群組都必須有名稱。

效果格式

效果技術語法 (Direct3D 11)