Partager via


ID3D11DeviceContext ::OMSetBlendState, méthode (d3d11.h)

Définissez l’état de fusion de l’étape de fusion de sortie.

Syntaxe

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

Paramètres

[in, optional] pBlendState

Type : ID3D11BlendState*

Pointeur vers une interface d’état mixte (voir ID3D11BlendState). Passez NULL pour un état de fusion par défaut. Pour plus d’informations sur l’état de fusion par défaut, consultez Remarques.

[in, optional] BlendFactor

Type : const FLOAT[4]

Tableau de facteurs de fusion, un pour chaque composant RVBA. Les facteurs de fusion modulent les valeurs du nuanceur de pixels, de la cible de rendu ou des deux. Si vous avez créé l’objet blend-state avec D3D11_BLEND_BLEND_FACTOR ou D3D11_BLEND_INV_BLEND_FACTOR, l’étape de fusion utilise le tableau non NULL de facteurs de fusion. Si vous n’avez pas créé l’objet d’état de fusion avec D3D11_BLEND_BLEND_FACTOR ou D3D11_BLEND_INV_BLEND_FACTOR, l’étape de fusion n’utilise pas le tableau non NULL de facteurs de fusion ; le runtime stocke les facteurs de fusion, et vous pouvez ensuite appeler ID3D11DeviceContext ::OMGetBlendState pour récupérer les facteurs de fusion. Si vous transmettez null, le runtime utilise ou stocke un facteur de fusion égal à { 1, 1, 1, 1 }.

[in] SampleMask

Type : UINT

Couverture de l’échantillon 32 bits. La valeur par défaut est 0xffffffff. Consultez la section Remarques.

Valeur de retour

None

Remarques

L’état de fusion est utilisé par l’étape sortie-fusion pour déterminer comment fusionner deux valeurs de pixels RVB et deux valeurs alpha. Les deux valeurs de pixel RVB et deux valeurs alpha sont la valeur de pixel RVB et la valeur alpha que le nuanceur de pixels génère, ainsi que la valeur de pixel RVB et la valeur alpha déjà dans la cible de rendu de sortie. L’option de fusion contrôle la source de données que l’étape de fusion utilise pour moduler les valeurs du nuanceur de pixels, de la cible de rendu ou des deux. L’opération de fusion contrôle la façon dont l’étape de fusion combine mathématiquement ces valeurs modulées.

Pour créer une interface blend-state, appelez ID3D11Device ::CreateBlendState.

Le passage de null pour l’interface d’état de fusion indique au runtime qu’il doit définir un état de fusion par défaut. Le tableau suivant indique les paramètres de fusion par défaut.

State Valeur par défaut
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
 

Un exemple de masque détermine quels exemples sont mis à jour dans toutes les cibles de rendu actives. Le mappage des bits d’un exemple de masque à des exemples dans une cible de rendu à échantillonnage multiple est la responsabilité d’une application individuelle. Un exemple de masque est toujours appliqué ; il est indépendant de l’activation du multi-échantillonnage et ne dépend pas du fait qu’une application utilise ou non des cibles de rendu à échantillonnage multiple.

La méthode contient une référence aux interfaces passées. Cela diffère du comportement de l’état de l’appareil dans Direct3D 10.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête d3d11.h
Bibliothèque D3D11.lib

Voir aussi

ID3D11DeviceContext