Метод 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 |