Syntaxe de la technique d’effet (Direct3D 11)
Une technique d’effet est déclarée avec la syntaxe décrite dans cette section.
TechniqueVersion TechniqueName [ <Annotations> ]
{
- pass *PassName* \[ <*Annotations* > \] {
- \[ *SetStateGroup*; \] \[ *SetStateGroup*; \] ... \[ *SetStateGroup*; \]
}
Paramètres
Élément | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TechniqueVersion |
Technique10 ou Technique11. Les techniques qui utilisent des fonctionnalités nouvelles de Direct3D 11 (nuanceurs 5_0, BindInterfaces, etc.) doivent utiliser la technique11. |
||||||||||||||||||
TechniqueName |
Optionnel. Chaîne ASCII qui identifie de manière unique le nom de la technique d’effet. |
||||||||||||||||||
<
Annotations > |
[in] Facultatif. Un ou plusieurs éléments d’informations fournis par l’utilisateur (métadonnées) qui sont ignorés par le système d’effets. Pour la syntaxe, consultez Syntaxe d’annotation (Direct3D 11). |
||||||||||||||||||
Passer |
Obligatoire mot clé. |
||||||||||||||||||
PassName |
[in] Facultatif. Chaîne ASCII qui identifie de manière unique le nom de la passe. |
||||||||||||||||||
SetStateGroup |
[in] Définissez un ou plusieurs groupes d’états tels que :
|
Exemples
Cet exemple montre comment définir l’état de fusion.
BlendState NoBlend
{
BlendEnable[0] = False;
};
...
technique10
{
pass p2
{
...
SetBlendState( NoBlend, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );
}
}
Cet exemple montre comment configurer l’état du rastériseur pour afficher un objet en wireframe.
RasterizerState rsWireframe { FillMode = WireFrame; };
...
technique10
{
pass p1
{
....
SetRasterizerState( rsWireframe );
}
}
Cet exemple montre comment définir l’état du nuanceur.
technique10 RenderSceneWithTexture1Light
{
pass P0
{
SetVertexShader( CompileShader( vs_4_0, RenderSceneVS( 1, true, true ) ) );
SetGeometryShader( NULL );
SetPixelShader( CompileShader( ps_4_0, RenderScenePS( true ) ) );
}
}