Effektzustandsgruppen (Direct3D 11)
Effektzustände sind Namenswertpaare in Form eines Ausdrucks.
- Mischzustand
- Tiefe und Schablonenzustand
- Rasterizerstatus
- Samplerstatus
- Effect-Objektzustand
- Definieren und Verwenden von Zustandsobjekten
- Zugehörige Themen
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 );
Zugehörige Themen