Metodo ID3D11DeviceContext::OMSetBlendState (d3d11.h)

Impostare lo stato di fusione della fase di fusione dell'output.

Sintassi

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

Parametri

[in, optional] pBlendState

Tipo: ID3D11BlendState*

Puntatore a un'interfaccia di stato blend (vedere ID3D11BlendState). Passare NULL per uno stato di fusione predefinito. Per altre info sullo stato di fusione predefinito, vedi Osservazioni.

[in, optional] BlendFactor

Tipo: const FLOAT[4]

Matrice di fattori di fusione, uno per ogni componente RGBA. I fattori di fusione modulano i valori per il pixel shader, la destinazione di rendering o entrambi. Se è stato creato l'oggetto stato di fusione con D3D11_BLEND_BLEND_FACTOR o D3D11_BLEND_INV_BLEND_FACTOR, la fase di fusione utilizza la matrice non NULL di fattori di fusione. Se non è stato creato l'oggetto stato blend con D3D11_BLEND_BLEND_FACTOR o D3D11_BLEND_INV_BLEND_FACTOR, la fase di fusione non utilizza la matrice non NULL di fattori di fusione; il runtime archivia i fattori di fusione ed è possibile chiamare in seguito ID3D11DeviceContext::OMGetBlendState per recuperare i fattori di fusione. Se si passa NULL, il runtime usa o archivia un fattore di fusione uguale a { 1, 1, 1, 1 }.

[in] SampleMask

Tipo: UINT

Copertura di esempio a 32 bit. Il valore predefinito è 0xffffffff. Vedere la sezione Osservazioni.

Valore restituito

nessuno

Osservazioni

Lo stato blend viene usato dalla fase di fusione dell'output per determinare come combinare due valori di pixel RGB e due valori alfa. I due valori pixel RGB e due valori alfa sono il valore del pixel RGB e il valore alfa restituiti dal pixel shader e dal valore rgb pixel e dal valore alfa già nella destinazione di rendering dell'output. L'opzione blend controlla l'origine dati usata dalla fase di fusione per modulare i valori per il pixel shader, la destinazione di rendering o entrambi. L'operazione di fusione controlla il modo in cui la fase di fusione combina matematicamente questi valori modulati.

Per creare un'interfaccia di stato blend, chiamare ID3D11Device::CreateBlendState.

Il passaggio di NULL per l'interfaccia dello stato blend indica al runtime di impostare uno stato di fusione predefinito. La tabella seguente indica i parametri di fusione predefiniti.

State Valore predefinito
AlphaToCoverageEnable FALSE
IndependentBlendEnable FALSE
RenderTarget[0]. BlendEnable FALSE
RenderTarget[0]. SrcBlend D3D11_BLEND_ONE
RenderTarget[0]. DestBlend D3D11_BLEND_ZERO
RenderTarget[0]. BlendOp D3D11_BLEND_OP_ADD
RenderTarget[0]. SrcBlendAlpha D3D11_BLEND_ONE
RenderTarget[0]. DestBlendAlpha D3D11_BLEND_ZERO
RenderTarget[0]. BlendOpAlpha D3D11_BLEND_OP_ADD
RenderTarget[0]. RenderTargetWriteMask D3D11_COLOR_WRITE_ENABLE_ALL
 

Una maschera di esempio determina quali esempi vengono aggiornati in tutte le destinazioni di rendering attive. Il mapping dei bit in una maschera di esempio ai campioni in una destinazione di rendering multisample è responsabilità di una singola applicazione. Viene sempre applicata una maschera di esempio; indipendentemente dal fatto che il multicampionamento sia abilitato e non dipende dal fatto che un'applicazione usi destinazioni di rendering multisample.

Il metodo conterrà un riferimento alle interfacce passate. Questo comportamento differisce dal comportamento dello stato del dispositivo in Direct3D 10.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3d11.h
Libreria D3D11.lib

Vedi anche

ID3D11DeviceContext