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_FACTOR 또는 D3D10_BLEND_INV_BLEND_FACTOR 혼합 상태 개체를 만든 경우 혼합 단계에서는 혼합 요소의 NULL이 아닌 배열을 사용합니다. D3D10_BLEND_BLEND_FACTOR 또는 D3D10_BLEND_INV_BLEND_FACTOR 혼합 상태 개체를 만들지 않은 경우 혼합 단계에서 혼합 요소의 NULL이 아닌 배열을 사용하지 않습니다. 런타임은 혼합 요소를 저장하고 나중에 ID3D11DeviceContext::OMGetBlendState를 호출하여 혼합 요소를 검색할 수 있습니다. NULL을 전달하는 경우 런타임은 { 1, 1, 1, 1 }과 같은 혼합 인수를 사용하거나 저장합니다.
[in] SampleMask
형식: UINT
32비트 샘플 검사. 기본값은 0xffffffff. 설명을 참조하세요.
반환 값
없음
설명
혼합 상태는 출력 병합기 단계에서 두 개의 RGB 픽셀 값과 두 개의 알파 값을 함께 혼합하는 방법을 결정하는 데 사용됩니다. 두 개의 RGB 픽셀 값과 두 개의 알파 값은 픽셀 셰이더가 출력하는 RGB 픽셀 값과 알파 값이며 출력 렌더링 대상에 이미 있는 RGB 픽셀 값과 알파 값입니다. 혼합 옵션은 혼합 단계에서 픽셀 셰이더, 렌더링 대상 또는 둘 다에 대한 값을 변조하는 데 사용하는 데이터 원본을 제어합니다. 혼합 연산은 혼합 단계가 이러한 변조된 값을 수학적으로 결합하는 방법을 제어합니다.
혼합 상태 인터페이스를 만들려면 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 |
라이브러리 | D3D10.lib |