Effektzustandsgruppen (Direct3D 10)

Effektzustände sind Name-Wert-Paare in Form eines Ausdrucks.

Überblenden des Zustands

Auswirkungszustand Group
ALPHATOCOVERAGEENABLE, BLENDENABLE, SRCBLEND, DESTBLEND, BLENDOP, SRCBLENDALPHA, DESTBLENDALPHA, BLENDOPALPHA, RENDERTARGETWRITEMASK Elemente von D3D10 _ BLEND _ DESC

Tiefen- und Schablonenzustand

Auswirkungszustand Group
DEPTHENABLE, DEPTHWRITEMASK, DEPTHFUNC, STENCILENABLE, STENCILREADMASK, STENCILWRITEMASK Elemente der D3D10 _ _ DEPTH-SCHABLONE _ DESC
FRONTFACESTENCILFAIL, FRONTFACESTENCILZFAIL, FRONTFACESTENCILPASS, FRONTFACESTENCILFUNC, BACKFACESTENCILFAIL, BACKFACESTENCILZFAIL, BACKFACESTENCILPASS, BACKFACESTENCILFUNC Member von D3D10 _ DEPTH _ STENCILOP _ DESC

Status des Rasterizers

Auswirkungszustand Group
Fillmode FÜLLMODUS D3D10 _ _
CULLMODE D3D10 _ _ CULL-MODUS
FRONTCOUNTERCLOCKWISE, DEPTHBIAS, DEPTHBIASCLAMP, VERSKALIERTDEPTHBIAS, ZCLIPENABLE, SCISSORENABLE, MULTISAMPLEENABLE, ANTIALIASEDLINEENABLE Elemente von D3D10 _ RASTERIZER _ DESC

Samplerzustand

Auswirkungszustand Group
Filter, AddressU, AddressV, AddressW, MipLODBias, MaxAnisotropy, ComparisonFunc, BorderColor, MinLOD, MaxLOD Member von D3D10 _ SAMPLER _ DESC

Beispiele finden Sie unter Sampler type (DirectX HLSL) (Samplertyp (DirectX HLSL)).

Effect-Objektzustand

Dieses Effektobjekt Entsprechung
RASTERIZERSTATE Ein Zustandsobjekt des Rasterizerzustands.
DEPTHSTENCILSTATE Ein Tiefen- und Schablonenzustandsobjekt.
BLENDSTATE Ein Blend State State-Objekt.
VERTEXSHADER Ein kompiliertes Vertex-Shaderobjekt.
Pixelshader Ein kompiliertes Pixelshaderobjekt.
GEOMETRYSHADER Ein kompiliertes geometry-Shaderobjekt.
DS _ STENCILREF AB _ BLENDFACTOR AB _ SAMPLEMASK Member von D3D10 _ PASS _ DESC.

Definieren und Verwenden von Zustandsobjekten

Zustandsobjekte werden in FX-Dateien im folgenden Format deklariert. StateObjectType ist einer der oben aufgeführten Zustände, und MemberName ist der Name jedes Mitglieds, das einen nicht standardmäßigen Wert hat.

StateObjectType ObjectName {
 MemberName = value;
 ...
 MemberName = value;
};

Wenn Sie beispielsweise ein Blend-Zustandsobjekt einrichten möchten, bei dem AlphaToCoverageEnable und BlendEnable 0 auf FALSE festgelegt sind, wird der folgende [ ] Code verwendet.

BlendState NoBlend {
 AlphaToCoverageEnable = FALSE;
 BlendEnable[0] = FALSE;
};

Das Zustandsobjekt wird mithilfe einer der SetStateGroup-Funktionen, die unter Effect Technique Syntax (Direct3D 10)beschrieben sind, auf einen Technikpass angewendet. Um beispielsweise das oben beschriebene BlendState-Objekt anzuwenden, wird der folgende Code verwendet.

SetBlendState( NoBlend, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );

Ein Tutorial, in dem die Verwendung von Status beschrieben wird, finden Sie unter Zustandsverwaltung.