Condividi tramite


Sintassi del gruppo di effetti (Direct3D 11)

Un gruppo di effetti viene dichiarato con la sintassi descritta in questa sezione.

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



Parametri

Elemento Descrizione
fxgroup
parola chiave equired.
Groupname
Obbligatorio. Stringa ASCII che identifica in modo univoco il nome del gruppo di effetti. A differenza delle tecniche, i gruppi devono avere nomi per garantire che le tecniche dispongano di un identificatore univoco (vedere La sezione Gruppi e tecniche di seguito).
< Annotazioni >
[in] Facoltativo. Una o più informazioni fornite dall'utente (metadati) ignorate dal sistema di effetto. Per la sintassi, vedere Sintassi annotazione (Direct3D 11).
TecnicaVersion
"tecnica10" o "tecnica11". Le tecniche che usano funzionalità nuove per Direct3D 11 (5_0 shader, BindInterfaces e così via) devono usare "tecnica11".
TecnicaName
Facoltativa. Stringa ASCII che identifica in modo univoco il nome della tecnica dell'effetto.

Gruppi e tecniche

Per mantenere la compatibilità con gli effetti fx_4_0, i gruppi sono facoltativi. Esiste un gruppo NULL implicito che circonda tutte le tecniche globali.

Prendere in considerazione gli esempi seguenti:

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

In C++, una può ottenere una tecnica per nome in due modi. I comandi seguenti troveranno le tecniche ovvie:

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" );

Per assicurarsi che ID3DX11Effect::GetTechniqueByName funzioni in modo analogo a Effects 10, tutti i gruppi definiti devono avere un nome.

Formato effetto

Sintassi tecnica dell'effetto (Direct3D 11)