> ## 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.

# RSSetShadingRateImage (consoles XBOX Series)

> La méthode ID3D12GraphicsCommandList5::RSSetShadingRateImage (d3d12.h) définit l'image de taux d'ombrage en espace écran pour l'ombrage à taux variable (VRS).

Définit l'image de taux d'ombrage en espace écran pour l'ombrage à taux variable (VRS). Pour plus d'informations, consultez [Ombrage à taux variable (VRS)](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/vrs).
Cette méthode nécessite la prise en charge du niveau Tier2 de l'[ombrage à taux variable (VRS)](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/vrs). Consultez [**D3D12\_FEATURE\_DATA\_D3D12\_OPTIONS6**](/fr/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options6_public) et [**D3D12\_VARIABLE\_SHADING\_RATE\_TIER**](/fr/reference/graphics/d3d12/enums/d3d12_variable_shading_rate_tier_public).

## Syntaxe

```cpp theme={null}
void RSSetShadingRateImage(
    ID3D12Resource  shadingRateImage
)
```

### Paramètres

*shadingRateImage*\
Type : ID3D12Resource \*

Pointeur facultatif vers un [ID3D12Resource](/fr/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs) représentant une image de taux d'ombrage en espace écran.
Si la valeur est **NULL**, l'effet est le même que celui d'une image de taux d'ombrage dont toutes les valeurs correspondent à un taux d'ombrage de 1x1.

L'état [**D3D12\_RESOURCE\_STATE\_SHADING\_RATE\_SOURCE**](/fr/reference/graphics/d3d12_x/enums/d3d12_resource_states) doit être appliqué à cette texture.

La taille des vignettes de l'image de taux d'ombrage peut être déterminée via [**D3D12\_FEATURE\_DATA\_D3D12\_OPTIONS6**](/fr/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options6_public).
La taille de l'image de taux d'ombrage doit donc être

```
ceil((float)rtWidth / VRSTileSize), ceil((float)rtHeight / VRSTileSize)
```

L'image de taux d'ombrage doit être une texture 2D avec un seul niveau de mip, au format [**DXGI\_FORMAT\_R8\_UINT**](https://learn.microsoft.com/en-us/windows/win32/api/dxgiformat/ne-dxgiformat-dxgi_format). Chaque texel doit être une valeur correspondant à [**D3D12\_SHADING\_RATE**](/fr/reference/graphics/d3d12/enums/d3d12_shading_rate_public). Elle doit avoir la disposition [**D3D12\_TEXTURE\_LAYOUT\_UNKNOWN**](/fr/reference/graphics/d3d12_x/enums/d3d12_texture_layout) et ne peut pas être une ressource de profondeur-gabarit, de cible de rendu, à accès simultané ou inter-cartes.

Comme (0, 0) correspond au coin supérieur gauche dans DirectX, une image de taux d'ombrage trop petite ou trop grande fait que le bas ou la droite n'a pas de zone d'image de taux d'ombrage, ou que l'image s'étend dans ces directions. En cas d'excédent, celui-ci est ignoré (mais autorisé), et lorsque l'image est trop petite, toutes les zones hors limites en bas et à droite ont le taux d'ombrage par défaut de 1x1 provenant de l'image (cela ne signifie toutefois pas qu'il s'agit du taux d'ombrage final : les combinateurs sont toujours appliqués à cette valeur par défaut de 1x1).

### Valeur renvoyée

Type : void

Aucune.

## Remarques

Pour que l'image de taux d'ombrage en espace écran prenne effet, [**ID3D12GraphicsCommandList5::RSSetShadingRate**](/fr/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist5/methods/id3d12graphicscommandlist5_rssetshadingrate_public) doit avoir été appelée pour définir les combinateurs d'ombrage. Sinon, avec les combinateurs par défaut (tous deux [**D3D12\_SHADING\_RATE\_COMBINER\_PASSTHROUGH**](/fr/reference/graphics/d3d12/enums/d3d12_shading_rate_combiner_public)), l'image de taux d'ombrage en espace écran est ignorée lors de la détermination de la granularité de l'ombrage.

Le second combinateur passé à  \[**ID3D12GraphicsCommandList5::RSSetShadingRate**] est celui qui s'applique à l'image de taux d'ombrage, ce qui se produit après la combinaison du taux d'ombrage global et du taux d'ombrage par primitive.

L'algorithme du taux d'ombrage final est déterminé par

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

où `ApplyCombiner` est

```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;
}
}
```

## Configuration requise

**En-tête :** d3d12\_xs.h\
**Bibliothèque :** d3d12\_xs.lib\
**Plateformes prises en charge** : consoles XBOX Series

## Voir aussi

[Ombrage à taux variable (VRS)](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/vrs)


## Related topics

- [RSSetShadingRate (consoles XBOX Series)](/fr/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist5/methods/id3d12graphicscommandlist5_rssetshadingrate_public.md)
- [D3D12_SHADING_RATE (consoles XBOX Series)](/fr/reference/graphics/d3d12/enums/d3d12_shading_rate_public.md)
- [D3D12_AXIS_SHADING_RATE (consoles XBOX Series)](/fr/reference/graphics/d3d12/enums/d3d12_axis_shading_rate_public.md)
- [Variable Rate Shading (VRS) sur XBOX Series X|S](/fr/build/core-features/graphics/newfeatures/vrs/index.md)
- [D3D12_SHADING_RATE_COMBINER](/fr/reference/graphics/d3d12/enums/d3d12_shading_rate_combiner_public.md)
