Freigeben über


Effektzustandsgruppen (Direct3D 11)

Effektzustände sind Namenswertpaare in Form eines Ausdrucks.

Mischzustand

Effektzustand Group
ALPHATOCOVERAGEENABLEBLENDENABLESRCBLENDDESTBLENDBLENDBLENDOP SRCBLENDALPHADESTBLENDALPHABLENDOPALPHARENDERTARGETWRITEMASK Mitglieder von D3D11_BLEND_DESC

 

Tiefe und Schablonenzustand

Effektzustand Group
DEPTHENABLEDEPTHWRITEMASKDEPTHFUNCSTENCILENABLESTENCILREADMASKSTENCILWRITEMASK Mitglieder von D3D11_DEPTH_STENCIL_DESC
FRONTFACESTENCILFAILFRONTFACESTENCILZFAILFRONTFACESTENCILPASSFRONTFACESTENCILFUNCBACKFACESTENCILFAILBACKFACESTENCILZFAILBACKFACESTENCILPASSBACKFACESTENCILFUNC Mitglied der D3D11_DEPTH_STENCILOP_DESC

 

Rasterizerstatus

Effektzustand Group
FILLMODE D3D11_FILL_MODE
CULLMODE D3D11_CULL_MODE
FRONTCOUNTERCLOCKWISEDEPTHBIASDEPTHBIASCLAMPSLOPESCALEDDEPTHBIAS ZCLIPENABLESCISSORENABLEMULTISAMPLEENABLEANTIALIASEDLINEENABLE Mitglieder von D3D11_RASTERIZER_DESC

 

Samplerstatus

Effektzustand Group
Filter AddressU AddressV AddressW MipLODBias MaxAnisotropy ComparisonFunc BorderColor MinLOD MaxLOD Mitglieder von D3D11_SAMPLER_DESC

 

Beispiele finden Sie unter Sampler Type (DirectX HLSL).

Effect-Objektzustand

Dieses Effect-Objekt Entsprechung
RASTERIZERSTATE Ein Statusobjekt des Rasterizerzustands .
DEPTHSTENCILSTATE Ein Tiefen- und Schablonenzustandsobjekt .
BLENDSTATE Ein Blend State-Zustandsobjekt .
VERTEXSHADER Ein kompiliertes Vertex-Shaderobjekt.
PIXELSHADER Ein kompiliertes Pixelshaderobjekt.
GEOMETRYSHADER Ein kompiliertes Geometry-Shaderobjekt.
DS_STENCILREFAB_BLENDFACTORAB_SAMPLEMASK Mitglieder von D3DX11_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 eines jeden Members, der einen anderen Standardwert aufweist.

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

Wenn Sie beispielsweise ein Mischzustandsobjekt 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 auf einen Technikdurchlauf mithilfe einer der SetStateGroup-Funktionen angewendet, die unter Effect Technique Syntax (Direct3D 11) beschrieben werden. 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 );
    

Syntax der Effekttechnik

Effektformat (Direct3D 11)