Sintassi tecnica dell'effetto (Direct3D 11)
Una tecnica di effetto viene dichiarata con la sintassi descritta in questa sezione.
TechniqueVersion TechniqueName [ <Annotazioni> ]
{
- pass *PassName* \[ <*Annotations* > \] {
- \[ *SetStateGroup*; \] \[ *SetStateGroup*; \] ... \[ *SetStateGroup*; \]
}
Parametri
Elemento | Descrizione | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TecnicaVersion |
Tecnica10 o tecnica11. Le tecniche che usano funzionalità nuove a Direct3D 11 (5_0 shader, BindInterfaces e così via) devono usare la tecnica11. |
||||||||||||||||||
TecnicaName |
Facoltativa. Stringa ASCII che identifica in modo univoco il nome della tecnica dell'effetto. |
||||||||||||||||||
<
Annotazioni > |
[in] Facoltativo. Una o più informazioni fornite dall'utente (metadati) ignorate dal sistema di effetto. Per la sintassi, vedere Sintassi annotazione (Direct3D 11). |
||||||||||||||||||
Passare |
Parola chiave obbligatoria. |
||||||||||||||||||
PassName |
[in] Facoltativo. Stringa ASCII che identifica in modo univoco il nome del passaggio. |
||||||||||||||||||
SetStateGroup |
[in] Impostare uno o più gruppi di stato, ad esempio:
|
Esempio
In questo esempio viene impostato lo stato di fusione.
BlendState NoBlend
{
BlendEnable[0] = False;
};
...
technique10
{
pass p2
{
...
SetBlendState( NoBlend, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );
}
}
In questo esempio viene configurato lo stato rasterizer per eseguire il rendering di un oggetto in wireframe.
RasterizerState rsWireframe { FillMode = WireFrame; };
...
technique10
{
pass p1
{
....
SetRasterizerState( rsWireframe );
}
}
In questo esempio viene impostato lo stato dello shader.
technique10 RenderSceneWithTexture1Light
{
pass P0
{
SetVertexShader( CompileShader( vs_4_0, RenderSceneVS( 1, true, true ) ) );
SetGeometryShader( NULL );
SetPixelShader( CompileShader( ps_4_0, RenderScenePS( true ) ) );
}
}