Freigeben über


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 ) ) );
    }
}

Effektformat