Метод ID3D11DeviceContext::OMSetBlendState (d3d11.h)

Задайте состояние смешения этапа слияния выходных данных.

Синтаксис

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

Параметры

[in, optional] pBlendState

Тип: ID3D11BlendState*

Указатель на интерфейс состояния наложения (см. ID3D11BlendState). Передайте значение NULL для состояния смешения по умолчанию. Дополнительные сведения о состоянии смешения по умолчанию см. в разделе Примечания.

[in, optional] BlendFactor

Тип: const FLOAT[4]

Массив факторов смешения, по одному для каждого компонента RGBA. Факторы смешения модулируют значения для пиксельного шейдера, целевого объекта отрисовки или и того, и другого. Если вы создали объект состояния наложения с D3D11_BLEND_BLEND_FACTOR или D3D11_BLEND_INV_BLEND_FACTOR, на этапе смешивания используется массив факторов смешения, отличный от NULL. Если вы не создали объект состояния смешивания с D3D11_BLEND_BLEND_FACTOR или D3D11_BLEND_INV_BLEND_FACTOR, на этапе смешивания не используется массив факторов смешения, отличный от NULL; среда выполнения сохраняет факторы смешения, а затем можно вызвать ID3D11DeviceContext::OMGetBlendState для получения факторов смешения. Если вы передаете значение NULL, среда выполнения использует или сохраняет коэффициент смешения, равный { 1, 1, 1, 1 }.

[in] SampleMask

Тип: UINT

32-разрядный охват выборки. Значение по умолчанию — 0xffffffff. См. примечания.

Возвращаемое значение

None

Remarks

Состояние смешения используется этапом объединения выходных данных и слияния для определения способа объединения двух значений пикселей RGB и двух альфа-значений. Два значения пикселей RGB и два альфа-значения — это значение пикселей RGB и альфа-значение, которое выводит шейдер пикселей, а также значение пикселей RGB и альфа-значение уже в целевом объекте отрисовки выходных данных. Параметр blend управляет источником данных, который используется на этапе смешения для модуляции значений для шейдера пикселей, целевого объекта отрисовки или и того, и другого. Операция смешения управляет математическим объединением этих модулированных значений на этапе смешивания.

Чтобы создать интерфейс состояния наложения, вызовите ID3D11Device::CreateBlendState.

Передача значения NULL для интерфейса состояния наложения указывает среде выполнения задать состояние смешивания по умолчанию. В следующей таблице указаны параметры смешивания по умолчанию.

Состояние Значение по умолчанию
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
 

Маска образца определяет, какие примеры обновляются во всех активных целевых объектах отрисовки. Сопоставление битов в маске образца с примерами в целевом объекте многопримерной отрисовки является ответственностью отдельного приложения. Всегда применяется пример маски; Он не зависит от того, включено ли многопримерное преобразование, и не зависит от того, использует ли приложение целевые объекты отрисовки с несколькими выборками.

Метод будет содержать ссылку на переданные интерфейсы. Это отличается от поведения состояния устройства в Direct3D 10.

Требования

Требование Значение
Целевая платформа Windows
Header d3d11.h
Библиотека D3D11.lib

См. также раздел

ID3D11DeviceContext