Effektzustandsgruppen (Direct3D 11)
Effektzustände sind Name-Wert-Paare in Form eines Ausdrucks.
- Blend-Zustand
- Tiefen- und Schablonenzustand
- Status des Rasterizers
- Samplerzustand
- Effect-Objektzustand
- Definieren und Verwenden von Zustandsobjekten
- Verwandte Themen
Blend-Zustand
| Auswirkungszustand | Group |
|---|---|
| ALPHATOCOVERAGEENABLEBLENDENABLESRCBLENDDESTBLENDBLENDOP SRCBLENDALPHADESTBLENDALPHABLENDOPALPHARENDERTARGETWRITEMASK | Elemente von D3D11 _ BLEND _ DESC |
Tiefen- und Schablonenzustand
| Auswirkungszustand | Group |
|---|---|
| DEPTHENABLEDEPTHWRITEMASKDEPTHFUNCSTENCILENABLESTENCILREADMASKSTENCILWRITEMASK | Elemente von D3D11 _ DEPTH _ STENCIL _ DESC |
| FRONTFACESTENCILFAILFRONTFACESTENCILZFAILFRONTFACESTENCILPASSFRONTFACESTENCILFUNCBACKFACESTENCILFAILBACKFACESTENCILZFAILBACKFACESTENCILPASSBACKFACESTENCILFUNC | Member von D3D11 _ DEPTH _ STENCILOP _ DESC |
Rasterizerstatus
| Auswirkungszustand | Group |
|---|---|
| Fillmode | _ _ D3D11-FÜLLMODUS |
| CULLMODE | D3D11 _ _ CULL-MODUS |
| FRONTCOUNTERCLOCKWISEDEPTHBIASDEPTHBIASCLAMPSSCALEDDEPTHBIAS ZCLIPENABLESCISSORENABLEMULTISAMPLEENABLEANTIALIASEDLINEENABLE | Member von D3D11 _ RASTERIZER _ DESC |
Samplerstatus
| Auswirkungszustand | Group |
|---|---|
| Filter AddressU AddressV AddressW MipLODBias MaxAnisotropy ComparisonFunc BorderColor MinLOD MaxLOD | Member von D3D11 _ SAMPLER _ DESC |
Beispiele finden Sie unter Sampler Type (DirectX HLSL) (Sampler-Typ (DirectX HLSL)).
Effect-Objektzustand
| Dieses Effect-Objekt | Entsprechung |
|---|---|
| RASTERIZERSTATE | Ein Zustandsobjekt des Rasterizerzustands. |
| DEPTHSTENCILSTATE | Ein Tiefen- und Schablonenzustandsobjekt. |
| BLENDSTATE | Ein Blend State-Zustandsobjekt. |
| VERTEXSHADER | Ein kompiliertes Vertex-Shaderobjekt. |
| Pixelshader | Ein kompiliertes Pixel-Shaderobjekt. |
| GEOMETRYSHADER | Ein kompiliertes Geometrie-Shaderobjekt. |
| DS _ STENCILREFAB _ BLENDFACTORAB _ SAMPLEMASK | Member 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 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 Unter Effect Technique Syntax (Direct3D 11)beschriebenen SetStateGroup-Funktionen 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 );