Compartilhar via


Sintaxe do grupo de efeitos (Direct3D 11)

Um grupo de efeitos é declarado com a sintaxe descrita nesta seção.

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



Parâmetros

Item Descrição
fxgroup
palavra-chave equired.
Groupname
Obrigatórios. Uma cadeia de caracteres ASCII que identifica exclusivamente o nome do grupo de efeitos. Ao contrário das técnicas, os grupos devem ter nomes para garantir que as técnicas tenham um identificador exclusivo (consulte a seção Grupos e Técnicas abaixo).
< Anotações >
[in] Opcional. Uma ou mais partes de informações fornecidas pelo usuário (metadados) que são ignoradas pelo sistema de efeito. Para obter a sintaxe, consulte Sintaxe de anotação (Direct3D 11).
TechniqueVersion
"técnica10" ou "técnica11". As técnicas que usam funcionalidades novas no Direct3D 11 (sombreadores 5_0, BindInterfaces etc. ) devem usar "técnica11".
TechniqueName
Opcional. Uma cadeia de caracteres ASCII que identifica exclusivamente o nome da técnica de efeito.

Grupos e técnicas

Para manter a compatibilidade com fx_4_0 efeitos, os grupos são opcionais. Há um grupo nulo implícito em torno de todas as técnicas globais.

Considere o seguinte exemplo:

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

No C++, é possível obter uma técnica pelo nome de duas maneiras. Os seguintes comandos encontrarão as técnicas óbvias:

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

Para garantir que ID3DX11Effect::GetTechniqueByName funcione de forma semelhante aos Efeitos 10, todos os grupos definidos devem ter um nome.

Formato de efeito

Sintaxe de técnica de efeito (Direct3D 11)