Compartir a través de


Sintaxis de grupo de efectos (Direct3D 11)

Un grupo de efectos se declara con la sintaxis descrita en esta sección.

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



Parámetros

Elemento Descripción
fxgroup
palabra clave equired.
Groupname
Necesario. Cadena ASCII que identifica de forma única el nombre del grupo de efectos. A diferencia de las técnicas, los grupos deben tener nombres para asegurarse de que las técnicas tienen un identificador único (consulte la sección Grupos y técnicas a continuación).
< Anotaciones >
[in] Opcional. Uno o más fragmentos de información proporcionada por el usuario (metadatos) que el sistema de efectos omite. Para obtener sintaxis, vea Annotation Syntax (Direct3D 11).
TechniqueVersion
"técnica10" o "técnica11". Las técnicas que usan la funcionalidad nueva para Direct3D 11 (sombreadores 5_0, BindInterfaces, etc.) deben usar "technique11".
TechniqueName
Opcional. Cadena ASCII que identifica de forma única el nombre de la técnica de efecto.

Grupos y técnicas

Para mantener la compatibilidad con los efectos de fx_4_0, los grupos son opcionales. Hay un grupo con nombre NULL implícito que rodea todas las técnicas globales.

Considere el ejemplo siguiente:

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

En C++, se puede obtener una técnica por nombre de dos maneras. Los siguientes comandos encontrarán las técnicas obvias:

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 asegurarse de que ID3DX11Effect::GetTechniqueByName funciona de forma similar a Effects 10, todos los grupos definidos deben tener un nombre.

Formato de efecto

Sintaxis de la técnica de efecto (Direct3D 11)