Share via


ID3D12GraphicsCommandList5::RSSetShadingRate 메서드(d3d12.h)

VRS(가변 속도 음영)에 대한 기본 음영 속도 및 조합기를 설정합니다. 자세한 내용은 VRS(가변 속도 음영)를 참조하세요.

구문

void RSSetShadingRate(
  D3D12_SHADING_RATE                baseShadingRate,
  const D3D12_SHADING_RATE_COMBINER *combiners
);

매개 변수

baseShadingRate

형식: D3D12_SHADING_RATE

설정할 기본 음영 속도를 설명하는 D3D12_SHADING_RATE 열거형의 상수입니다.

combiners

형식: const D3D12_SHADING_RATE_COMBINER*

설정할 음영 속도 조합기를 포함하는 D3D12_SHADING_RATE_COMBINER 상수 배열에 대한 선택적 포인터입니다. 배열의 D3D12_SHADING_RATE_COMBINER 요소 수는 상수 D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT2와 같아야 합니다.

계층1 VRS(가변 속도 음영)에서는 기본형 및 화면 공간별 이미지 기반 VRS가 지원되지 않으므로 이러한 값을 의미하려면 어댑터에 Tier2 VRS 지원이 필요합니다. D3D12_FEATURE_DATA_D3D12_OPTIONS6D3D12_VARIABLE_SHADING_RATE_TIER 참조하세요.

NULL 포인터는 모두 D3D12_SHADING_RATE_COMBINER_PASSTHROUGH 기본 음영 결합기와 동일합니다.

최종 음영 속도에 대한 알고리즘은 다음을 통해 결정됩니다.

postRasterizerRate = ApplyCombiner(Combiners[0], CommandListShadingRate, Primitive->PrimitiveSpecifiedShadingRate);
finalRate = ApplyCombiner(Combiners[1], postRasterizerRate, ScreenSpaceImage[xy]);

여기서 ApplyCombiner 는 입니다.

UINT ApplyCombiner(D3D12_SHADING_RATE_COMBINER combiner, UINT a, UINT b)
{
    MaxShadingRate = options6.AdditionalShadingRatesSupported ? 4 : 2;
    switch (combiner)
    {
        case D3D12_SHADING_RATE_COMBINER_PASSTHROUGH: // default
            return a;
        case D3D12_SHADING_RATE_COMBINER_OVERRIDE:
            return b;
        case D3D12_SHADING_RATE_COMBINER_MAX:
            return max(a, b);
        case D3D12_SHADING_RATE_COMBINER_MIN:
            return min(a, b);
        case D3D12_SHADING_RATE_COMBINER_SUM:
            return min(MaxShadingRate, a + b);
        case default:
            return a;
    }
}

반환 값

없음

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 빌드 20348
지원되는 최소 서버 Windows 10 빌드 20348
머리글 d3d12.h

추가 정보

VRS(Variable-Rate Shading)