Syntax der Effekttechnik (Direct3D 10)
Eine Effekttechnik wird mit der folgenden Syntax deklariert.
technique10 TechniqueName [ <Anmerkungen> ]
{
- pass *PassName* \[ <*Annotations* > \] {
- \[ *SetStateGroup*; \] \[ *SetStateGroup*; \] ... \[ *SetStateGroup*; \]
}
Parameter
-
technik10
-
Erforderliche Schlüsselwort (keyword).
-
TechniqueName
-
Optional. Eine ASCII-Zeichenfolge, die den Namen der Effekttechnik eindeutig identifiziert.
-
Anmerkungen
-
[in] Optional. Mindestens ein Teil der vom Benutzer bereitgestellten Informationen (Metadaten), die vom Effektsystem ignoriert werden. Informationen zur Syntax finden Sie unter Anmerkungssyntax (Direct3D 10).
-
bestehen
-
Erforderliche Schlüsselwort (keyword).
-
PassName
-
[in] Optional. Eine ASCII-Zeichenfolge, die den Namen des Durchlaufs eindeutig identifiziert.
-
SetStateGroup
-
[in] Legen Sie mindestens eine Zustandsgruppe fest, z. B.:
StateGroup Syntax Mischzustand SetBlendState( arguments );
Die Argumentliste finden Sie unter [OMSetBlendState](/windows/desktop/api/D3D10/nf-d3d10-id3d10device-omsetblendstate).
Tiefenschablonenzustand SetDepthStencilState( arguments );
Die Argumentliste finden Sie unter OMSetDepthStencilState .
Rasterizerstatus SetRasterizerState( arguments );
Die Argumentliste finden Sie unter [RSSetState](/windows/desktop/api/D3D10/nf-d3d10-id3d10device-rssetstate).
Shaderstatus SetXXXShader( CompileShader( shader_profile, ShaderFunction( args ) ) );
oder
SetXXXShader( CompileShader( NULL ) );
oder
SetXXXShader( NULL );
SetXXXShader ist eine von SetVertexShader, SetGeometryShader oder SetPixelShader (die den API-Methoden VSSetShader, GSSetShader und PSSetShader ähneln).
Effektstatusgruppen werden im Effektzustand aufgeführt.
Beispiele
In diesem Beispiel (aus dem CubeMapGS-Beispiel) wird der Mischzustand 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 Rasterisierungszustand zum Rendern eines Objekts im Drahtmodell eingerichtet.
RasterizerState rsWireframe { FillMode = WireFrame; };
...
technique10
{
pass p1
{
....
SetRasterizerState( rsWireframe );
}
}
In diesem Beispiel wird der Shaderzustand festgelegt (aus dem BasicHLSL10-Beispiel); , die einen Vertex- und Pixelshader verwendet.
technique10 RenderSceneWithTexture1Light
{
pass P0
{
SetVertexShader( CompileShader( vs_4_0, RenderSceneVS( 1, true, true ) ) );
SetGeometryShader( NULL );
SetPixelShader( CompileShader( ps_4_0, RenderScenePS( true ) ) );
}
}
Zugehörige Themen