Effekttechniksyntax (Direct3D 11)
Eine Effekttechnik wird mit der in diesem Abschnitt beschriebenen Syntax deklariert.
TechniqueVersion [ < TechniqueName-Anmerkungen > ]
{
- \[ < *PassName-Anmerkungen* übergeben > \]
{
- \[*SetStateGroup*; \] \[ *SetStateGroup*;\]
...
\[*SetStateGroup*;\]
}
Parameter
| Element | Beschreibung | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TechniqueVersion |
Entweder technique10 oder technique11. Techniken, die neue Funktionen für Direct3D 11 (5_0-Shader, BindInterfaces usw.) verwenden, müssen technique11 verwenden. |
||||||||||||||||||
| TechniqueName |
Optional. Eine ASCII-Zeichenfolge, die den Namen der Effekttechnik eindeutig identifiziert. |
||||||||||||||||||
| <Anmerkungen > |
[in] Optional. Eine oder mehrere vom Benutzer bereitgestellte Informationen (Metadaten), die vom Effektsystem ignoriert werden. Informationen zur Syntax finden Sie unter Anmerkungssyntax (Direct3D 11). |
||||||||||||||||||
| bestehen |
Erforderliches Schlüsselwort. |
||||||||||||||||||
| PassName |
[in] Optional. Eine ASCII-Zeichenfolge, die den Namen des Durchlaufs eindeutig identifiziert. |
||||||||||||||||||
| SetStateGroup |
[in] Legen Sie eine oder mehrere Statusgruppen fest, z. B.:
|
Beispiele
In diesem Beispiel wird der Blendingzustand festgelegt.
BlendState NoBlend
{
BlendEnable[0] = False;
};
...
technique10
{
pass p2
{
...
SetBlendState( NoBlend, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );
}
}
In diesem Beispiel wird der Rasterizerzustand so eingerichtet, dass ein Objekt in Wireframe gerendert wird.
RasterizerState rsWireframe { FillMode = WireFrame; };
...
technique10
{
pass p1
{
....
SetRasterizerState( rsWireframe );
}
}
In diesem Beispiel wird der Shaderzustand festgelegt.
technique10 RenderSceneWithTexture1Light
{
pass P0
{
SetVertexShader( CompileShader( vs_4_0, RenderSceneVS( 1, true, true ) ) );
SetGeometryShader( NULL );
SetPixelShader( CompileShader( ps_4_0, RenderScenePS( true ) ) );
}
}