셰이더 지정 스텐실 참조 값(Direct3D 11 그래픽)

API 지정 값을 사용하는 대신, 스텐실 참조 값을 출력하는 데 픽셀 셰이더를 사용하면 스텐실 작업을 매우 세부적으로 제어할 수 있습니다.

셰이더 지정 값은 해당 호출에 대해 API 지정 스텐실 참조 값을 대체합니다. 즉, 변경 내용이 스텐실 테스트와 스텐실 op D3D11_STENCIL_OP_REPLACE( D3D11_STENCIL_OP 멤버 한 명)를 사용하여 참조 값을 스텐실 버퍼에 쓰는 경우 모두에 영향을 줍니다.

이전 버전의 D3D11에서는 ID3D11DeviceContext::OMSetDepthStencilState 메서드로만 스텐실 참조 값을 지정할 수 있습니다. 즉, 이 값은 그리기별 세분성에서만 정의할 수 있습니다. 이 D3D11.3 기능을 사용하면 개발자가 픽셀 셰이더에서 출력되는 스텐실 참조 값(SV_StencilRef)을 읽고 사용할 수 있습니다. 즉, 픽셀별 또는 샘플별 세분성에 지정할 수 있습니다.

이 기능은 D3D11.3에서 선택 사항입니다. 지원을 테스트하려면 ID3D11Device::CheckFeatureSupport를 사용하여 D3D11_FEATURE_DATA_D3D11_OPTIONS2 부울 필드를 검사.PSSpecifiedStencilRefSupported

다음은 픽셀 셰이더에서 를 SV_StencilRef 사용하는 예입니다.

uint main2(float4 c : COORD) : SV_StencilRef
{
    return uint(c.x);
}

Direct3D 11.3 기능

셰이더 모델 5.1