Share via


ID3D10Device::OMSetBlendState-Methode (d3d10.h)

Legen Sie den Mischzustand der Output-Merger-Phase fest.

Syntax

void OMSetBlendState(
  [in] ID3D10BlendState *pBlendState,
  [in] const FLOAT [4]  BlendFactor,
  [in] UINT             SampleMask
);

Parameter

[in] pBlendState

Typ: ID3D10BlendState*

Zeiger auf eine Blendzustandsschnittstelle (siehe ID3D10BlendState). Die Übergabe von NULL impliziert einen Standardmischungszustand. Weitere Informationen finden Sie in den Hinweisen.

[in] BlendFactor

Typ: const FLOAT

Array von Blendfaktoren, eins für jede RGBA-Komponente. Die Blendfaktoren modulieren Werte für den Pixelshader, das Renderziel oder beides. Wenn Sie das Blendzustandsobjekt mit D3D10_BLEND_BLEND_FACTOR oder D3D10_BLEND_INV_BLEND_FACTOR erstellt haben, verwendet die Mischphase das Array von Blendfaktoren ungleich NULL. Wenn Sie das Blendzustandsobjekt nicht mit D3D10_BLEND_BLEND_FACTOR oder D3D10_BLEND_INV_BLEND_FACTOR erstellt haben, verwendet die Überblendphase nicht das Array der Blendfaktoren ungleich NULL. Die Runtime speichert die Blendfaktoren, und Sie können id3D11DeviceContext::OMGetBlendState später aufrufen, um die Blendfaktoren abzurufen. Wenn Sie NULL übergeben, verwendet oder speichert die Runtime einen Mischfaktor gleich { 1, 1, 1, 1 }.

[in] SampleMask

Typ: UINT

32-Bit-Beispielabdeckung. Der Standardwert ist 0xffffffff. Siehe Bemerkungen.

Rückgabewert

Keine

Bemerkungen

Der Blendzustand wird von der Ausgabe-Merger-Phase verwendet, um zu bestimmen, wie zwei RGB-Pixelwerte und zwei Alphawerte miteinander gemischt werden. Die beiden RGB-Pixel- und zwei Alphawerte sind der RGB-Pixel- und der Alphawert, den der Pixelshader ausgibt, sowie der RGB-Pixel- und Alphawert, der bereits im Ausgaberenderungsziel enthalten ist. Die Option blend steuert die Datenquelle, die die Mischphase verwendet, um Werte für den Pixelshader, das Renderziel oder beides zu modulieren. Der Mischvorgang steuert, wie die Mischphase diese modulierten Werte mathematisch kombiniert.

Rufen Sie ID3D10Device::CreateBlendState auf, um eine Blendzustandsschnittstelle zu erstellen.

Die Übergabe von NULL für die Blendzustandsschnittstelle gibt an, dass die Runtime einen Standardmischungszustand festlegen soll. In der folgenden Tabelle sind die Standardmischungsparameter angegeben.

State Standardwert
AlphaToCoverageEnable FALSE
BlendEnable FALSE[8]
SrcBlend D3D10_BLEND_ONE
DstBlend D3D10_BLEND_ZERO
BlendOp D3D10_BLEND_OP_ADD
SrcBlendAlpha D3D10_BLEND_ONE
DstBlendAlpha D3D10_BLEND_ZERO
BlendOpAlpha D3D10_BLEND_OP_ADD
RenderTargetWriteMask[8] D3D10_COLOR_WRITE_ENABLE_ALL[8]
 

Eine Beispielmaske bestimmt, welche Beispiele in allen aktiven Renderzielen aktualisiert werden. Die Zuordnung von Bits in einer Beispielmaske zu Beispielen in einem Multisample-Renderziel liegt in der Verantwortung einer einzelnen Anwendung. Eine Beispielmaske wird immer angewendet. Sie ist unabhängig davon, ob Multisampling aktiviert ist, und hängt nicht davon ab, ob eine Anwendung Multisample-Renderziele verwendet.

Die -Methode enthält keinen Verweis auf die übergebenen Schnittstellen. Aus diesem Grund sollten Anwendungen darauf achten, keine Schnittstelle freizugeben, die derzeit vom Gerät verwendet wird.

Anforderungen

   
Zielplattform Windows
Kopfzeile d3d10.h
Bibliothek D3D10.lib

Weitere Informationen

ID3D10Geräteschnittstelle