Syntaxe de la technique d’effet (Direct3D 10)
Une technique d’effet est déclarée avec la syntaxe suivante.
technique10 TechniqueName [ <Annotations> ]
{
- pass *PassName* \[ <*Annotations* > \] {
- \[ *SetStateGroup*; \] \[ *SetStateGroup*; \] ... \[ *SetStateGroup*; \]
}
Paramètres
-
technique10
-
Mot clé obligatoire.
-
TechniqueName
-
Optionnel. Chaîne ASCII qui identifie de manière unique le nom de la technique d’effet.
-
Annotations
-
[in] Facultatif. Une ou plusieurs informations fournies par l’utilisateur (métadonnées) qui sont ignorées par le système d’effet. Pour obtenir la syntaxe, consultez Syntaxe d’annotation (Direct3D 10).
-
Passer
-
Mot clé obligatoire.
-
PassName
-
[in] Facultatif. Chaîne ASCII qui identifie de manière unique le nom du passage.
-
SetStateGroup
-
[in] Définissez un ou plusieurs groupes d’états tels que :
StateGroup Syntaxe État de fusion SetBlendState( arguments );
Consultez [OMSetBlendState](/windows/desktop/api/D3D10/nf-d3d10-id3d10device-omsetblendstate) pour connaître la liste d’arguments.
État du gabarit de profondeur SetDepthStencilState( arguments );
Pour connaître la liste des arguments, consultez OMSetDepthStencilState .
État du rastériseur SetRasterizerState( arguments );
Pour connaître la liste des arguments, consultez [RSSetState](/windows/desktop/api/D3D10/nf-d3d10-id3d10device-rssetstate).
État du nuanceur SetXXXShader( CompileShader( shader_profile, ShaderFunction( args ) ) );
or
SetXXXShader( CompileShader( NULL ) );
or
SetXXXShader( NULL );
SetXXXShader est l’un des setVertexShader, SetGeometryShader ou SetPixelShader (qui sont similaires aux méthodes d’API VSSetShader, GSSetShader et PSSetShader).
Les groupes d’états d’effet sont répertoriés dans l’é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 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 (à partir de l’exemple BasicHLSL10) ; qui utilise un vertex et un nuanceur de pixels.
technique10 RenderSceneWithTexture1Light
{
pass P0
{
SetVertexShader( CompileShader( vs_4_0, RenderSceneVS( 1, true, true ) ) );
SetGeometryShader( NULL );
SetPixelShader( CompileShader( ps_4_0, RenderScenePS( true ) ) );
}
}
Rubriques connexes