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 |