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

> O método ID3D12GraphicsCommandList5::RSSetShadingRateImage (d3d12.h) define a imagem de taxa de sombreamento de espaço de tela para o sombreamento de taxa variável (VRS).

Define a imagem de taxa de sombreamento de espaço de tela para o sombreamento de taxa variável (VRS). Para obter mais informações, consulte [Sombreamento de taxa variável (VRS)](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/vrs).
Este método requer suporte ao [Sombreamento de taxa variável (VRS)](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/vrs) de Tier2. Consulte [**D3D12\_FEATURE\_DATA\_D3D12\_OPTIONS6**](/pt-BR/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options6_public) e [**D3D12\_VARIABLE\_SHADING\_RATE\_TIER**](/pt-BR/reference/graphics/d3d12/enums/d3d12_variable_shading_rate_tier_public).

## Sintaxe

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

### Parâmetros

*shadingRateImage*\
Tipo: ID3D12Resource \*

Um ponteiro opcional para um [ID3D12Resource](/pt-BR/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs) que representa uma imagem de taxa de sombreamento de espaço de tela.
Se for **NULL**, o efeito será o mesmo de ter uma imagem de taxa de sombreamento em que todos os valores sejam uma taxa de sombreamento de 1x1.

Essa textura deve ter o estado [**D3D12\_RESOURCE\_STATE\_SHADING\_RATE\_SOURCE**](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_states) aplicado.

O tamanho do bloco da imagem de taxa de sombreamento pode ser determinado por meio de [**D3D12\_FEATURE\_DATA\_D3D12\_OPTIONS6**](/pt-BR/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options6_public).
Portanto, o tamanho da imagem de taxa de sombreamento deve ser

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

A imagem de taxa de sombreamento deve ser uma textura 2D com um único mip e o formato [**DXGI\_FORMAT\_R8\_UINT**](https://learn.microsoft.com/en-us/windows/win32/api/dxgiformat/ne-dxgiformat-dxgi_format). Cada texel deve ser um valor correspondente a [**D3D12\_SHADING\_RATE**](/pt-BR/reference/graphics/d3d12/enums/d3d12_shading_rate_public). Ela deve ter o layout [**D3D12\_TEXTURE\_LAYOUT\_UNKNOWN**](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_texture_layout) e não pode ser um recurso de profundidade/estêncil, de destino de renderização, de acesso simultâneo ou entre adaptadores.

Como (0, 0) é o canto superior esquerdo no DirectX, uma imagem de taxa de sombreamento pequena ou grande demais faz com que a parte inferior ou direita não tenha área de imagem de taxa de sombreamento, ou que a imagem se estenda nessas direções. Quando há excesso, ele é ignorado (mas é válido) e, quando a imagem é pequena demais, todas as áreas fora dos limites na parte inferior e direita terão a taxa de sombreamento padrão de 1x1 da imagem (no entanto, isso não significa que essa seja a taxa de sombreamento final. Os combinadores ainda serão aplicados a esse valor padrão de 1x1).

### Valor retornado

Tipo: void

Nenhum.

## Comentários

Para que a imagem de taxa de sombreamento de espaço de tela tenha efeito, [**ID3D12GraphicsCommandList5::RSSetShadingRate**](/pt-BR/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist5/methods/id3d12graphicscommandlist5_rssetshadingrate_public) deve ter sido chamado para definir os combinadores de sombreamento. Caso contrário, com os combinadores padrão (ambos [**D3D12\_SHADING\_RATE\_COMBINER\_PASSTHROUGH**](/pt-BR/reference/graphics/d3d12/enums/d3d12_shading_rate_combiner_public)), a imagem de taxa de sombreamento de espaço de tela será ignorada na determinação da granularidade do sombreamento.

O segundo combinador passado para \[**ID3D12GraphicsCommandList5::RSSetShadingRate**] é o que se aplica à imagem de taxa de sombreamento, o que ocorre depois que a taxa de sombreamento global e a taxa de sombreamento por primitivo foram combinadas.

O algoritmo da taxa de sombreamento final é determinado por

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

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

## Requisitos

**Cabeçalho:** d3d12\_xs.h\
**Biblioteca:** d3d12\_xs.lib\
**Plataformas com suporte**: consoles XBOX Series

## Confira também

[Sombreamento de taxa variável (VRS)](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/vrs)


## Related topics

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