> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RSSetShadingRate (XBOX Series 本体)

> ID3D12GraphicsCommandList5::RSSetShadingRate メソッド (d3d12.h) は、可変レート シェーディング (VRS) のベース シェーディング レートおよびコンバイナーを設定します。

可変レート シェーディング (VRS) のベース シェーディング レートおよびコンバイナーを設定します。詳細については、[可変レート シェーディング (VRS)](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/vrs) を参照してください。

## 構文

```cpp theme={null}
void RSSetShadingRate(
    D3D12_SHADING_RATE baseShadingRate,
    const D3D12_SHADING_RATE_COMBINER  combiners
)
```

### パラメーター

*baseShadingRate*\
型: D3D12\_SHADING\_RATE

設定するベース シェーディング レートを記述する [D3D12\_SHADING\_RATE](/reference/graphics/d3d12/enums/d3d12_shading_rate_public) 列挙体からの定数。

*combiners*\
型: const D3D12\_SHADING\_RATE\_COMBINER \*

設定するシェーディング レート コンバイナーを含む [**D3D12\_SHADING\_RATE\_COMBINER**](/reference/graphics/d3d12/enums/d3d12_shading_rate_combiner_public) の定数配列への、オプションのポインター。配列内の [**D3D12\_SHADING\_RATE\_COMBINER**](/reference/graphics/d3d12/enums/d3d12_shading_rate_combiner_public) 要素の数は、定数 [**D3D12\_RS\_SET\_SHADING\_RATE\_COMBINER\_COUNT**](https://learn.microsoft.com/en-us/windows/win32/direct3d12/constants) (= **2**) と同じでなければなりません。

Tier1 の [可変レート シェーディング (VRS)](https://learn.microsoft.com/en-us/windows/win32/direct3d12/vrs) ではプリミティブ単位およびスクリーン空間イメージベースの VRS はサポートされていないため、これらの値が意味を持つには、アダプターに Tier2 VRS のサポートが必要です。[**D3D12\_FEATURE\_DATA\_D3D12\_OPTIONS6**](/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options6_public) および [**D3D12\_VARIABLE\_SHADING\_RATE\_TIER**](/reference/graphics/d3d12/enums/d3d12_variable_shading_rate_tier_public) を参照してください。

**NULL** ポインターは、既定のシェーディング コンバイナーと等価であり、どちらも [**D3D12\_SHADING\_RATE\_COMBINER\_PASSTHROUGH**](/reference/graphics/d3d12/enums/d3d12_shading_rate_combiner_public) です。

最終シェーディング レートのアルゴリズムは以下のように決定されます。

```cpp theme={null}
postRasterizerRate = ApplyCombiner(Combiners[0], CommandListShadingRate, Primitive->PrimitiveSpecifiedShadingRate);
finalRate = ApplyCombiner(Combiners[1], postRasterizerRate, ScreenSpaceImage[xy]);
```

ここで `ApplyCombiner` は以下のとおりです。

```cpp theme={null}
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;
}
}
```

### 戻り値

型: void

なし。

## 解説

## 要件

**ヘッダー:** d3d12\_xs.h\
**ライブラリ:** d3d12\_xs.lib\
**サポートされているプラットフォーム**: XBOX Series 本体

## 関連項目

[可変レート シェーディング (VRS)](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/vrs)


## Related topics

- [RSSetShadingRateImage (XBOX Series 本体)](/ja-jp/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist5/methods/id3d12graphicscommandlist5_rssetshadingrateimage_public.md)
- [D3D12_SHADING_RATE (XBOX Series 本体)](/ja-jp/reference/graphics/d3d12/enums/d3d12_shading_rate_public.md)
- [D3D12_AXIS_SHADING_RATE (XBOX Series 本体)](/ja-jp/reference/graphics/d3d12/enums/d3d12_axis_shading_rate_public.md)
- [XBOX Series X|S での Variable Rate Shading (VRS)](/ja-jp/build/core-features/graphics/newfeatures/vrs/index.md)
- [SetPipelineState1 (XBOX Series 本体)](/ja-jp/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_setpipelinestate1_public.md)
