ID3D10Device::OMSetBlendState 方法 (d3d10.h)

设置输出合并阶段的 混合状态

语法

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

参数

[in] pBlendState

类型: ID3D10BlendState*

指向混合状态接口的指针 (请参阅 ID3D10BlendState) 。 传入 NULL 意味着默认混合状态。 有关更多详细信息,请参阅备注。

[in] BlendFactor

类型: const FLOAT

混合因子数组,每个 RGBA 分量对应一个。 混合因子调节像素着色器、呈现目标或两者的值。 如果使用 D3D10_BLEND_BLEND_FACTORD3D10_BLEND_INV_BLEND_FACTOR创建了混合状态对象,则混合阶段将使用混合因子的非 NULL 数组。 如果未使用 D3D10_BLEND_BLEND_FACTORD3D10_BLEND_INV_BLEND_FACTOR创建混合状态对象,则混合阶段不使用混合因子的非 NULL 数组;运行时存储混合因子,稍后可以调用 ID3D11DeviceContext::OMGetBlendState 来检索混合因子。 如果传递 NULL,运行时将使用或存储等于 { 1, 1, 1, 1 } 的混合因子。

[in] SampleMask

类型: UINT

32 位样本覆盖率。 默认值为 0xffffffff。 请参阅备注。

返回值

备注

输出合并阶段使用混合状态来确定如何将两个 RGB 像素值和两个 alpha 值混合在一起。 两个 RGB 像素值和两个 alpha 值是像素着色器输出的 RGB 像素值和 alpha 值,以及输出呈现目标中已有的 RGB 像素值和 alpha 值。 混合选项控制混合阶段用来调节像素着色器、呈现目标或两者的值的数据源。 混合运算控制混合阶段如何以数学方式合并这些调节值。

若要创建混合状态接口,请调用 ID3D10Device::CreateBlendState

为混合状态接口传入 NULL 指示运行时设置默认混合状态。 下表指示默认混合参数。

状态 默认值
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]
 

示例掩码确定在所有活动呈现目标中更新的样本。 将示例掩码中的位映射到多重采样呈现目标中的样本由单个应用程序负责。 始终应用示例掩码;它与是否启用多重采样无关,也不取决于应用程序是否使用多重采样呈现目标。

方法不会保存对传入的接口的引用。 因此,应用程序应小心不要释放设备当前正在使用的接口。

要求

   
目标平台 Windows
标头 d3d10.h
Library D3D10.lib

另请参阅

ID3D10Device 接口