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

# Por que usar o Variable Rate Shading?

> Por que usar o Variable Rate Shading?

Devido a restrições de desempenho, os renderizadores gráficos nem sempre conseguem oferecer o mesmo nível de qualidade em todas as partes da imagem de saída. O Variable Rate Shading (VRS), ou *sombreamento de pixel grosseiro*, é um mecanismo que permite alocar desempenho/energia de renderização em taxas variadas ao longo da imagem renderizada.

Visualmente, há casos em que a taxa de sombreamento pode ser reduzida com pouca ou nenhuma redução na qualidade perceptível da saída, resultando em desempenho "gratuito".

## Modelo atual: antialiasing de várias amostras (MSAA) e superamostragem

Sem o VRS, o único meio de controlar a taxa de sombreamento é o MSAA com execução baseada em amostras, ou *superamostragem*.

O MSAA é um mecanismo para reduzir o aliasing geométrico e melhorar a qualidade de renderização de uma imagem em comparação com a renderização sem MSAA. A contagem de amostras do MSAA, que pode ser 1x, 2x, 4x, 8x ou 16x, determina o número de amostras alocadas por pixel do destino de renderização. A contagem de amostras do MSAA deve ser conhecida antecipadamente quando o destino é alocado e não pode ser alterada depois.

A superamostragem faz com que o sombreador de pixel seja invocado uma vez por amostra, com qualidade mais alta, mas também com um custo de desempenho maior em comparação com a execução por pixel.

Os aplicativos podem controlar a taxa de sombreamento escolhendo entre a execução por pixel ou o MSAA com superamostragem. Essas duas opções não oferecem um controle muito refinado. Em casos como objetos atrás de elementos do HUD (heads-up display), transparências, desfoques (como profundidade de campo e movimento) e distorções ópticas causadas pela óptica de RV, uma taxa de sombreamento menor pode ser preferível em comparação com o restante da imagem, mas isso não é possível porque a qualidade e os custos de sombreamento são fixos em toda a imagem.

## Novo modelo: VRS

O novo modelo VRS estende o MSAA com superamostragem na direção oposta, de "pixel grosseiro", adicionando um novo conceito de *sombreamento grosseiro*. Nele, o sombreamento pode ser executado em uma frequência mais grosseira do que um pixel. Em outras palavras, um grupo de pixels pode ser sombreado como uma única unidade. O resultado é então transmitido para todas as amostras do grupo.

Uma API de sombreamento grosseiro permite que os aplicativos especifiquem o número de pixels que pertencem a um grupo sombreado. O tamanho do pixel grosseiro pode ser alterado depois que o destino de renderização é alocado. Como resultado, diferentes partes da tela ou diferentes passagens de desenho podem ter taxas de subamostragem diferentes.

A tabela a seguir descreve qual nível de MSAA tem suporte com qual tamanho de pixel grosseiro. Algumas combinações não têm suporte em nenhuma plataforma, enquanto outras são habilitadas condicionalmente com base em uma funcionalidade (AdditionalShadingRatesSupported). Observe que a funcionalidade AdditionalShadingRatesSupported é falsa no hardware do XBOX Series X|S.

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/CoarsePixelSizeSupport.PNG?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=ac6d703a3bf059fde6e4c612c660c087" alt="coarsePixelSizeSupport" width="566" height="164" data-path="images/gdk/features/graphics/CoarsePixelSizeSupport.PNG" />

Existe uma funcionalidade 2 × 4, e não 4 × 2, para MSAA 2x devido aos planos de hardware atualmente conhecidos em algumas plataformas.

No que é exposto pelas Camadas 1 e 2, e no plano atual para esse recurso, não há nenhuma combinação de tamanho de pixel grosseiro e contagem de amostras em que o hardware precise rastrear mais de 16 amostras por invocação do sombreador de pixel. Para fins de ilustração, elas estão sombreadas em meio-tom na tabela anterior.

## Consulte também

[Visão geral do Variable Rate Shading](/pt-BR/build/core-features/graphics/newfeatures/vrs/vrs-overview)

[Design do recurso Variable Rate Shading](/pt-BR/build/core-features/graphics/newfeatures/vrs/vrs-feature)

[API do Direct3D 12 para Variable Rate Shading](/pt-BR/build/core-features/graphics/newfeatures/vrs/vrs-api)


## Related topics

- [Variable Rate Shading (VRS) no XBOX Series X|S](/pt-BR/build/core-features/graphics/newfeatures/vrs/index.md)
- [Diretório de tópicos NDA: links ativos do Microsoft Learn](/pt-BR/nda/nda-topic-directory.md)
- [D3D12_VARIABLE_SHADING_RATE_TIER](/pt-BR/reference/graphics/d3d12/enums/d3d12_variable_shading_rate_tier_public.md)
- [RSSetShadingRate (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist5/methods/id3d12graphicscommandlist5_rssetshadingrate_public.md)
- [RSSetShadingRateImage (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist5/methods/id3d12graphicscommandlist5_rssetshadingrateimage_public.md)
