Syntaxe d’effet technique (Direct3D 10)
Une technique d’effet est déclarée avec la syntaxe suivante.
[ < Annotations TechniqueName technique10 > ]
{
- passer des \[ < *Annotations* PassName > \]
{
- \[*SetStateGroup*; \] \[ *SetStateGroup*;\]
...
\[*SetStateGroup*;\]
}
Paramètres
-
technique10
-
Mot clé requis.
-
TechniqueName
-
Optionnel. Chaîne ASCII qui identifie de façon unique le nom de la technique d’effet.
-
Annotations
-
[]facultatif. Un ou plusieurs éléments d’informations fournies par l’utilisateur (métadonnées) qui sont ignorés par le système d’effet. Pour obtenir la syntaxe, consultez syntaxe d’annotation (Direct3D 10).
-
directes
-
Mot clé requis.
-
PassName
-
[]facultatif. Chaîne ASCII qui identifie de façon unique le nom de la passe.
-
SetStateGroup
-
[dans, ] définissez un ou plusieurs groupes d’États tels que :
StateGroup Syntax État de fusion SetBlendState( arguments );Consultez [OMSetBlendState] (/Windows/Desktop/API/D3D10/NF-D3D10-id3d10device-omsetblendstate) pour la liste d’arguments.
État du stencil de profondeur SetDepthStencilState( arguments );Consultez OMSetDepthStencilState pour obtenir la liste des arguments.
État du rastériseur SetRasterizerState( arguments );Consultez [RSSetState] (/Windows/Desktop/API/D3D10/NF-D3D10-id3d10device-rssetstate) pour la liste d’arguments.
État du nuanceur SetXXXShader( CompileShader( shader_profile, ShaderFunction( args ) ) );or
SetXXXShader( CompileShader( NULL ) );or
SetXXXShader( NULL );SetXXXShader est l’un des SetVertexShader, SetGeometryShaderou SetPixelShader (qui sont similaires aux méthodes d’API VSSetShader, GSSetShaderet PSSetShader).
Les groupes d’États d’effet sont répertoriés en État d’effet.
Exemples
Cet exemple (de l' exemple CubeMapGS) définit 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 configure l’état du rastériseur pour afficher un objet en mode filaire.
RasterizerState rsWireframe { FillMode = WireFrame; };
...
technique10
{
pass p1
{
....
SetRasterizerState( rsWireframe );
}
}
Cet exemple définit l’état du nuanceur (à partir de l' exemple BasicHLSL10); qui utilise un nuanceur de sommets et de pixels.
technique10 RenderSceneWithTexture1Light
{
pass P0
{
SetVertexShader( CompileShader( vs_4_0, RenderSceneVS( 1, true, true ) ) );
SetGeometryShader( NULL );
SetPixelShader( CompileShader( ps_4_0, RenderScenePS( true ) ) );
}
}