다음을 통해 공유


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. 설명을 참조하세요.

반환 값

없음

설명

혼합 상태는 출력 병합기 단계에서 두 개의 RGB 픽셀 값과 두 개의 알파 값을 함께 혼합하는 방법을 결정하는 데 사용됩니다. 두 개의 RGB 픽셀 값과 두 개의 알파 값은 픽셀 셰이더가 출력하는 RGB 픽셀 값과 알파 값이며 출력 렌더링 대상에 이미 있는 RGB 픽셀 값과 알파 값입니다. 혼합 옵션은 혼합 단계에서 픽셀 셰이더, 렌더링 대상 또는 둘 다에 대한 값을 변조하는 데 사용하는 데이터 원본을 제어합니다. 혼합 연산은 혼합 단계가 이러한 변조된 값을 수학적으로 결합하는 방법을 제어합니다.

혼합 상태 인터페이스를 만들려면 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
헤더 d3d11.h
라이브러리 D3D11.lib

추가 정보

ID3D11DeviceContext