Estas informações eram atuais em novembro de 2019. Vários recursos podem ter sido alterados ou atualizados desde então.
Introdução: VRS
A saída em 1080p e resoluções maiores resultou no desenvolvimento de técnicas de renderização que reduzem a carga de sombreamento de pixels. Essas técnicas incluem o seguinte:- Renderização foveada em realidade virtual
- Renderização em tabuleiro de xadrez (checkerboard)
- Upscaling temporal
- Microsoft: Boost Rendering Performance with Variable Rate Shading
- Microsoft: DirectX: Variable Rate Shading, A Deep Dive
- NVIDIA: Adaptive Shading Overview
Metas de design do VRS
- Taxas de sombreamento selecionáveis localmente para ajustar o equilíbrio entre a qualidade e o desempenho do jogo:
- Qualidade total onde necessário.
- Meia taxa, a mesma taxa da renderização em tabuleiro de xadrez.
- Um quarto da taxa ou até menos.
- Profundidade, estêncil e cobertura são sempre em taxa total, com bordas perfeitas.
- O VRS é fácil de integrar a um mecanismo existente usando os mesmos sombreadores, com ou sem o VRS ativado.
- Sem preenchimento de buracos, sem passes ou buffers adicionais e sem suposições.
- A aparência suave e cinematográfica não é imposta. Visuais extremamente nítidos são possíveis.
- Compatível com upscaling temporal e suavização de serrilhado multiamostra (MSAA).
Escalabilidade local
O VRS pode reduzir seletivamente a taxa de sombreamento em áreas de detalhes de textura de baixa frequência. Por exemplo:- Áreas com desfoques, como profundidade de campo, desfoque de movimento e bloom
- Situações de pouca iluminação ou saturação de luz
- Oclusão parcial, como transparências, neblina, água, nuvens, atrás de folhagens ou elementos do heads-up display (HUD)
- Detalhes de textura de baixa frequência, como partículas e transparências em meia resolução
- Bordas da tela
- Áreas seguras de rastreamento ocular em realidade virtual
- Objetos em movimento rápido

- Taxa 1 × 1: uma invocação de PS por pixel. Sombreia todos os pixels.
- Taxa 2 × 1: meia invocação de PS por pixel. Mais detalhes na vertical.
- Taxa 1 × 2: meia invocação de PS por pixel. Mais detalhes na horizontal.
- Taxa 2 × 2: um quarto de invocação de PS por pixel. Um quarto da taxa.
Fontes da taxa de sombreamento
Há três maneiras de especificar a taxa do sombreador.- Por chamada de desenho:
- Tier 1 em PCs com Windows.
- RSSetShadingRate define a taxa de sombreamento base e os combinadores para o VRS.
- Por vértice provocador ou primitiva:
- Tier 2 em PCs com Windows e no XBOX Series X|S.
- Exportação usando SV_ShadingRate.
- Mapa de espaço de tela:
- Tier 2 em PCs com Windows e no XBOX Series X|S.
- RSSetShadingRateImage define a imagem de taxa de sombreamento de espaço de tela para o VRS.
R8_UINTpor bloco que contém enumerações D3D12_SHADING_RATE.- O aplicativo consulta o tamanho do bloco, que pode ser 8 × 8, 16 × 16 ou 32 × 32.

- O primeiro combinador recebe as taxas de sombreamento da chamada de desenho e a exportação do vértice por parâmetro ou do vértice provocador.
- O segundo combinador recebe os resultados do primeiro combinador e os combina com o mapa de espaço de tela.
- A taxa de sombreamento final vai para o rasterizador.

A Figura 4 mostra uma cena renderizada com taxa variável em 4K, um tamanho de bloco de 8 × 8 e sem suavização de serrilhado temporal (TAA). Essa cena foi renderizada com muitas reduções da taxa de sombreamento.
Figura 5. Taxa de sombreamento por bloco.
A Figura 5 mostra a mesma cena usando um filtro Sobel e votação por bloco.
A taxa 1 × 1 é vermelha. A taxa 2 × 1 é ciano e tem mais detalhes verticais, mostrando os detalhes de textura nas paredes à esquerda e à direita. A taxa 1 × 2 é amarela e tem mais detalhes horizontais. A taxa 2 × 2 é preta.
Figura 6. Área ampliada.
A Figura 6 amplia as pedras na parede do fundo da Figura 5 em uma área de 160 × 168 pixels. Isso corresponde a cerca de 0,3% da cena 4K original.
- O sinal do VRS está no lado esquerdo da Figura 6.
- A imagem de referência (ground truth), renderizada inteiramente com a taxa 1 × 1, está no meio da Figura 6.
- As imagens da taxa de sombreamento e do erro absoluto estão no lado direito da Figura 6.
A Figura 7 mostra onde o sombreador que estava gerando a taxa do sombreador usou a taxa total 1 × 1. Observe que isso foi feito em áreas de alto contraste. Observe também que o sombreador identificou o reflexo especular na parte superior das pedras afetadas.
Figura 8. Área ampliada: taxa 2 × 2.
A Figura 8 mostra onde o sombreador usou a taxa 2 × 2 na superfície das pedras. Observe a redução na qualidade do sombreamento para o sinal do VRS.
Figura 9. Área ampliada: várias taxas de sombreamento.
A Figura 9 mostra áreas em que várias taxas de sombreamento foram usadas em seções danificadas da superfície das pedras.
Figura 10. Área ampliada: meias taxas.
A Figura 10 mostra áreas em que o sombreamento de meia taxa foi usado. Ele é útil para preservar detalhes em uma área específica. Sem o sombreamento de meia taxa, você precisa usar o sombreamento de taxa total.
Figura 11. Quanto sombreamento fizemos?

- 94 blocos de taxa total (vermelho)
- 143 blocos de meia taxa (ciano/amarelo)
- 183 blocos de um quarto da taxa (preto)
- Sem VRS = 26.880 threads de PS
- Com VRS = 13.520 threads de PS
- Invocações de PS divididas pelo número de pixels = 0,503
Derivando o mapa de espaço de tela
Recomendamos que você use o último quadro para prever o quadro atual. Por exemplo, o último quadro informará:- Onde você aplicará a profundidade de campo.
- Onde ocorre o desfoque de movimento.
- Que há uma área de pouca luz ou uma área de saturação de luz.
- Começou com um filtro Sobel.
- Os resultados foram obtidos sem usar reprojeção de movimento.
- Os kernels de convolução X e Y foram verificados em relação ao gradiente e à luminância e, em seguida, comparados a uma taxa.
- Votação por bloco sobre qual taxa de sombreamento usar.
- Se o resultado da comparação for diferente de zero para X ou Y, a taxa será 2 × 1 ou 1 × 2.
- Recomendamos que você use intrínsecos entre lanes (cross-lane).
Para obter um filtro atualizado, confira o exemplo VRSandSparseLighting nos exemplos de console do Microsoft GDK.
A Figura 12 compara a imagem de referência na taxa 1 × 1 com um sinal do VRS da mesma cena.
O VRS altera o local de invocação do PS, e isso pode criar problemas. Por exemplo:
- O VRS pode capturar detalhes que não estão na imagem de referência.
- Diferentes taxas de sombreamento podem capturar ou perder detalhes de subpixel.
- Serrilhado temporal quando a câmera está se movendo:
- Neste exemplo, temos problemas de serrilhado temporal mesmo sem o VRS.
- As taxas grosseiras do VRS podem piorar a subamostragem.
- Os gradientes de textura são mais longos em cada eixo grosseiro.
- A seleção de mip inferior é automática e tem serrilhado aprimorado.
- Usar níveis de detalhe (LODs) de malha melhora o desempenho.
- Tenha cuidado ao usar serrilhado de sombreador.
- Use o TAA para resolver problemas de renderização por subamostragem.
Taxas de sombreamento
As taxas 1 × 1, 2 × 1, 1 × 2 e 2 × 2 são o conjunto mínimo de recursos do VRS. Os PCs têm um recurso adicional usando AdditionalShadingRatesSupported, que dá suporte às taxas de sombreamento 2 × 4, 4 × 2 ou 4 × 4. As taxas 2x parecem ser as mais eficazes. Com as taxas 2x, pode ser difícil encontrar degradação de qualidade. Isso é especialmente verdadeiro com as taxas 2 × 1 e 1 × 2. Com as taxas 4x, é muito mais fácil ver diferenças na renderização, mas elas são mais difíceis de usar. As vantagens de desempenho diminuem ao usar taxas 4x. A seguir estão os resultados de desempenho do NVIDIA Tier 2 com o mapa de espaço de tela. Wolfenstein II: The New Colossus- O modo equilibrado tem uma melhoria de 6% em quadros por segundo (FPS).
- O modo de desempenho tem uma melhoria de 9-10% em FPS.
- Fonte: Digital Foundry
- Redução de 8-17% no tempo total de quadro.
Para conhecer os ganhos de desempenho em DOOM Eternal e Gears 5 e obter informações atualizadas, confira o vídeo a seguir:
VRS Tier 2.x do XBOX Series X|S
Suporte nos consoles XBOX Series X|S
Os consoles XBOX Series X|S implementaram a especificação Tier 2 para PC no Microsoft Game Development Kit (GDK) de novembro de 2019 com os seguintes recursos e exceções. Recursos:- Taxas de sombreamento 1 × 1, 1 × 2, 2 × 1 e 2 × 2
- Mapa de espaço de tela
- Sem capacidade de modo 4x.
- A saída da máscara de cobertura está incorreta no momento se você usar MSAA. Uma correção está planejada para esse problema de saída.
- A entrada SV_Coverage funciona corretamente.
- O hardware não implementa um centroide em conformidade com a especificação.
- A exibição de destino de renderização (RTV) é permitida no mapa de imagem de taxa de sombreamento.
Extensões XBOX do XBOX Series X|S
O suporte está planejado para:- Supersampling com MSAA.
- Deslocamentos de posição de amostra.
- Combinadores extras.
- Taxa de sombreamento por primitiva com vários visores.
- Exportação da taxa de sombreamento a partir do sombreador de domínio.
- Superfície de feedback da taxa de sombreamento.
Supersampling com MSAA
O XBOX Series X|S dá suporte às taxas de sombreamento de supersampling 2x e 4x. Por exemplo, elas são usadas no MSAA 8x. O conjunto de possíveis invocações de PS por pixel é o seguinte.- 0.25
- 0.5
- 1
- 2
- 4
- 8

HTile e o mapa de espaço de tela
No XBOX Series X|S, a taxa de sombreamento é gravada em um mapa de espaço de tela, que é então transcodificado em HTile, onde o rasterizador lê a taxa de sombreamento.- O tamanho do bloco é sempre 8 × 8. Nenhuma consulta é necessária.
- O bloco é lido durante a rasterização. Nenhuma largura de banda extra é necessária.
- Uma extensão XBOX poderia realizar uma limpeza de profundidade e definir o mapa de taxa de sombreamento em um único passe. Isso melhora o desempenho.
Duas novas codificações de HTile
Duas novas codificações de HTile com Stencil estão disponíveis agora.- Sem suporte à taxa de sombreamento de supersampling:
- Os bits livres 10-11 no Stencil do HTile são usados para armazenar a taxa de sombreamento.
- Com suporte à taxa de sombreamento de supersampling:
- São necessários quatro bits para a taxa de sombreamento. O HTile perde seu segundo pré-teste Hi-Stencil (bits 6-7). O primeiro pré-teste permanece.
Detalhes de implementação do XBOX Series X|S
QuandoRSSetShadingRateImage é chamado, ele transcodifica o conteúdo em um HTile. Se não houver um HTile associado, um HTile temporário será alocado do alocador de comandos da lista de comandos. Isso habilita o VRS sem profundidade. O VRS pode ser usado para coisas como pós-processamento. Se a alocação falhar por falta de memória, o VRS será desativado.
Se você alterar a exibição de estêncil de profundidade (DSV), recomendamos que chame primeiro RSSetShadingRateImage(nullptr). Caso contrário, você poderá pagar o custo de transcodificação novamente se a DSV tiver as mesmas dimensões.
Uma RTV maior que 4K falha. Uma correção para esse problema está planejada para o Microsoft Game Development Kit (GDK) de abril de 2020.
O XBOX Series X|S tem combinadores extras
Figura 14. O XBOX Series X|S tem combinadores extras.
Local de invocação do PS
O hardware do XBOX Series X|S dá suporte a deslocamentos de amostra no centro, no centroide e programáveis, que podem alterar o local de invocação do pixel shader.- Deslocamento de 4 bits para cada taxa de sombreamento
- O local em que o PS é invocado pode mudar a cada ciclo de quadro
Incompatibilidades do VRS
Há algumas coisas que são incompatíveis com o VRS e o desativam no XBOX Series X|S. Isso ocorre quando o local do PS não se alinha com a amostra de profundidade ou com a amostra de estêncil.- Máscara de cobertura pós-profundidade
- Raster Order Views (ROVs)
- Importação de SV_Depth
- Passe por meio do interpolador. Confira a definição do compilador de sombreador
__XBOX_SV_POS_ZW_VIA_ATTRIBUTE, que faz isso para você.
- Passe por meio do interpolador. Confira a definição do compilador de sombreador
- Gravação de
SV_Depthou SV_StencilRef
Extensão Shading Rate Feedback Surface
A extensão Shading Rate Feedback Surface faz o seguinte:- Usa 2 bits de cmask
- Registra se um triângulo foi renderizado em uma taxa fina ou grosseira em cada eixo
- Remove a funcionalidade de limpeza rápida de
cmask - É incompatível com o processo
cmaskpara composição rápida
Resumo do suporte por plataforma
Figura 15. Suporte por plataforma.
Estas informações eram atuais em novembro de 2019. Vários recursos podem ter sido alterados ou atualizados desde então.
- O XBOX Series X|S dá suporte à maior quantidade de conjuntos de recursos.
- Com recursos pequenos, é melhor usar blocos 8 × 8 em vez de blocos 16 × 16, pois eles aumentam a taxa de sombreamento para menos pixels.
Otimizações de desempenho de hardware do XBOX Series X|S
As melhorias de desempenho do XBOX Series X|S precisam ser feitas em conjunto com uma redução nas cargas do pixel shader.Operações de bloco de cor
No pipeline gráfico lógico, um bloco de cor é uma das duas últimas operações lógicas antes da saída de renderização. Caminhos lentos Quando a RTV tem mais de 32 bits por pixel (bpp) ou a mesclagem está habilitada:- Sem VRS, há 4 pixels por ciclo de clock por back-end de renderização (RB).
- Com VRS, há 4 pixels por ciclo de clock por RB. No entanto, a transmissão de grosseiro para fino leva n ciclos adicionais, em que n é igual ao número de pixels cobertos.
- Sem VRS, você pode usar o back-end de renderização otimizado (RB+) com uma taxa 2x, que equivale a 8 pixels por ciclo de clock por RB.
- Com VRS, há 4 pixels por ciclo de clock por RB para uma taxa 1 × 1.
- No entanto, o bloco de cor pode carregar lateralmente cópias de transmissão adicionais.
- 4 pixels por ciclo de clock para uma taxa 2 × 1.
- 8 pixels por ciclo de clock para uma taxa 1 × 2.
- 8 pixels por ciclo de clock para uma taxa 2 × 2.
RSSetShadingRate
Para usar o RB+, desative o VRS chamandoRSSetShadingRate(D3D12_SHADING_RATE_1x1, nullptr);. Observe que RSSetShadingRate não altera o contexto (roll a context).
VRS e compressão de cor delta
A compressão de cor delta (DCC) agora tem um modo compatível com VRS que reduz a largura de banda.- O VRS gera um sinal que é mal compactado com a DCC normal.
- Exemplo de sinal: âncora, delta, delta zero, delta, delta zero. Repetir.
- Um modo compatível com VRS foi adicionado à DCC.
- Otimizado para compactação próxima de 4:1 na taxa 2 × 2.
- Proporções significativamente melhores para as taxas 2 × 1 e 1 × 2.
Iluminação esparsa
O VRS grava valores duplicados do g-buffer e os ilumina. Processar dados duplicados do g-buffer é um desperdício.Iluminação esparsa: explorando o sinal do VRS
Para evitar desperdício de desempenho, examine os g-buffers em busca de valores duplicados e, em seguida, identifique e ilumine apenas um subconjunto de pixels. Por exemplo, em um quad de 2 × 2 pixels:- 1 pixel para uma taxa 2 × 2
- 2 pixels para uma taxa 1 × 2 ou 2 × 1 (padrão de tabuleiro de xadrez)
- 4 pixels para uma taxa 1 × 1
Exemplo de implementação de iluminação esparsa
Um exemplo que usa um tamanho de bloco de 16 × 16 e um tamanho de grupo de 8 × 8 é o seguinte.- O thread do sombreador de computação compara os valores do g-buffer a cada 2 × 2 pixels.
- Em seguida, ele grava de 1 a 4 coordenadas por thread. Cada uma tem 32 bits por coordenada.
- 4 bits para a coordenada x relativa ao bloco.
- 4 bits para a coordenada y relativa ao bloco.
- 3 bits que indicam se o valor deve ser copiado em x, em y ou na diagonal (para preencher buracos).
- 21 bits são suficientes para um valor de profundidade.
- Uma das saídas é a contagem do número de operações de iluminação necessárias por bloco de tela.
Para obter informações atualizadas, confira o seguinte:
Sombreador de iluminação adiada
O sombreador de iluminação adiada agora despacha uma wave por thread de bloco em vez de um thread por pixel.- A wave percorre
tileCountn vezes. O desempenho melhora quando você remove operações de iluminação iguais ou superiores ao trabalho de uma wave. Ao considerar o desempenho de Wave32 em relação ao de Wave64:- Wave32 produz um ganho de velocidade quando há 224 pixels ou menos para iluminar.
- Wave64 produz um ganho de velocidade quando há 194 pixels ou menos para iluminar.
- O thread lê 32 bits, descompactando coordinate.xy e a profundidade.
- Faça a iluminação como você faria normalmente. As listas de luzes continuam invariantes na wave.
- Termine com até três cópias de transmissão do resultado iluminado.
- Um bit para cada cópia horizontal, vertical e diagonal.
- XOR1 é usado para calcular destination.xy para cada uma das três cópias.
- O preenchimento de buracos é perfeito, pré-calculado e barato.
A Figura 16 mostra, à esquerda, uma imagem 4K da cabeça de um leão de pedra com iluminação esparsa. O buffer de contagem está à direita. Ele mostra uma redução significativa nas operações de iluminação. Os g-buffers da pedra foram testados quanto a valores duplicados exatos com um pequeno intervalo de profundidade permitido (delta permitido de LinearZ de 0,001).
Figura 17. Resultado iluminado, sem preenchimento de buracos.
A Figura 17 mostra uma imagem ampliada do globo ocular do leão sem preenchimento de buracos.
- Os buracos são pixels pretos.
- 1 × 1 e todas as amostras são iluminadas.
- 2 × 1 e 1 × 2 se parecem com tabuleiros de xadrez.
- 2 × 2 ilumina uma amostra em cada quatro.
- Uma invocação se o quad de pixels for coberto por um único triângulo.
- Quatro invocações se o quad for coberto por quatro triângulos.
A Figura 18 mostra o resultado de adicionar um pequeno delta permitido nos valores durante a comparação do g-buffer. Os valores de normais estão à esquerda. Os valores de albedo estão à direita. Adicionar o pequeno delta reduziu o número de operações de iluminação e eliminou a malha de arame. A luma dessas imagens corresponde aproximadamente ao número de cálculos de iluminação. Isso se aproxima do conjunto ideal de pixels a iluminar: 1, 2, 3 ou 4 por taxa 2 × 2.
Figura 19. Correspondência exata do g-buffer.
A Figura 19 mostra a imagem da cabeça do leão com os buracos preenchidos. É difícil notar a diferença entre as duas, mesmo quando ampliadas.
Exame do g-buffer com otimizações específicas do XBOX Series X|S
Há uma implementação aprimorada que não envolve examinar o conteúdo do g-buffer. Para obter mais informações, confira o vídeo e o exemplo a seguir.
- Leia o mapa de taxa de sombreamento. Use o caminho rápido para blocos de taxa total e processe todos os pixels.
- Aproveite a superfície
cmaskde feedback da taxa de sombreamento. Use o caminho rápido para blocos de taxa reduzida cobertos por um único triângulo. - Para os blocos restantes:
- Leia a chave de DCC e, em seguida, explore os deltas zero.
- Faça um exame do g-buffer.
- Use o hash do g-buffer para otimização. Isso tem um custo de armazenamento e largura de banda.
- Combine a leitura do g-buffer com passes que estejam fazendo outra coisa, como ler a profundidade.
A Figura 20 mostra renderizações de cenas que comparam a economia da iluminação esparsa com a iluminação adiada em 4K.
cmaske DCC não foram usados nessas cenas.- A figura não inclui a economia do VRS nem do tempo de rasterização.
- A descontinuidade de profundidade ao redor dos pilares causa uma grande partição de profundidade e uma contagem de luzes maior.
- Na cena inferior, a contagem de luzes é relativamente baixa.
- A cena superior tem o maior tempo total decorrido. A cena inferior tem o menor tempo total decorrido. As melhorias escalam favoravelmente com a complexidade da cena.
Integração com outras técnicas
VRS, dimensionamento dinâmico de resolução e upscaling temporal
O VRS não substitui o dimensionamento dinâmico de resolução (DRS).- É possível reduzir a taxa de sombreamento quando o tempo de quadro ultrapassa o tempo de quadro desejado.
- As melhorias do VRS são imprevisíveis. Elas dependem do conteúdo da cena. Outros fatores incluem a iluminação.
- O DRS tem um efeito maior e mais previsível no tempo de quadro.
- Não substitua o DRS. Em vez disso, ajude o DRS a atingir resoluções mais altas.
- Use o upscaling temporal para a resolução de saída.

Fatores de desempenho do VRS
O desempenho do VRS depende de vários fatores. Eles incluem:- Eficiência da rasterização. Parallax, relief e cone-step mapping são preferíveis.
- Conteúdo da cena.
- Sobrecarga do cálculo da taxa de sombreamento.
- Custo do PS e gargalos de hardware posteriores.
- Suas preferências pessoais de desempenho versus qualidade.
Taxas de sombreamento por triângulo/por chamada de desenho
As taxas de sombreamento por triângulo/por chamada de desenho são um ótimo aprimoramento de desempenho. Elas reduzem o custo da GPU em comparação com o mapa de espaço de tela. Por chamada de desenho:- Partículas e objetos em movimento rápido são renderizados no mapa de reflexo.
- Determine se o objeto está atrás de uma translucidez.
- Determine se o triângulo está no lado oposto de uma superfície de água em relação à câmera.
- Determine se o triângulo está ocluído atrás de folhagens ou de outro objeto.
Planos futuros
Somente XBOX
- Remover o mapa de espaço de tela.
- Gravar a taxa de sombreamento diretamente no HTile.
- Realizar uma limpeza de profundidade na mesma operação.
- Girar os deslocamentos de amostra por quadro.
- Isso resulta em uma convergência semelhante ao tabuleiro de xadrez, mas oferece cobertura perfeita.
PC e XBOX
- Combinar a determinação da taxa de sombreamento com um sombreador de pós-processamento.
- Para taxas menores que 1 × 1, mas não exatamente 2 × 2, faça o seguinte:
- Considere alternar as taxas 2 × 1 e 1 × 2 por quadro, especialmente para títulos de 60 Hertz.
- Isso resulta em um padrão de tabuleiro de xadrez em que os quadrados pretos recebem 2 × 1 no primeiro quadro e 1 × 2 no quadro seguinte. Os quadrados brancos recebem 1 × 2 no primeiro quadro e 2 × 1 no quadro seguinte.
- Use jitter de TAA grosseiro em vez de jitter de TAA de subpixel.
- Adicione uma taxa de sombreamento por triângulo.
- Use o mapa de espaço de tela, a menos que uma taxa mais grosseira seja especificada. Essa é uma ótima configuração padrão de combinador.
- Ray tracing.
- Use a mesma medida de frequência de sombreamento (o mapa) para controlar a contagem de raios.
- Transmita o resultado do raio para os pixels adjacentes (ray tracing esparso).
Conclusão
O VRS é uma otimização poderosa para PCs e dispositivos XBOX Series X|S.- O VRS oferece cobertura perfeita e controle local da taxa de sombreamento. Essas são grandes melhorias em relação aos recursos existentes.
- É fácil incorporar o VRS ao seu mecanismo. O VRS se integra bem a tecnologias existentes, como DRS e upscaling temporal.
- Os maiores ganhos do VRS ocorrem ao processar efeitos tradicionalmente caros, como desfoques, sombras e efeitos volumétricos.
- O VRS tem uma sobrecarga muito baixa.
- Iluminar dados duplicados do g-buffer desperdiça recursos.
- Outros passes esparsos são possíveis.
- Reutilize a contagem de operações de iluminação necessárias por bloco de tela e suas coordenadas.
Próximas etapas
Se quiser revisar as informações dos materiais da apresentação relacionados a esta visão geral, baixe os seguintes arquivos do XBOX Developer Download Secure Data Storage (SDS).- Apresentação de slides: XF2019_Graphics_08_Day2_Variable_Rate_Shading_and_Sparse_Lighting.pptx em Xfest 2019 Graphics Track PowerPoints ([2019.11]-Xfest2019GraphicsTrackPowerPoints.ZIP)
- Apresentação em vídeo: XF2019_Graphics_08_Day2_Variable_Rate_Shading_and_Sparse_Lighting.mp4 em Xfest 2019 Graphics Track Videos ([2019.11]-Xfest2019GraphicsTrackVideos.ZIP)
Baixar as apresentações e os vídeos do Microsoft PowerPoint
- Acesse Downloads do Game Development Kit (GDK).
- Em Select file type, selecione Conference Materials e, em seguida, selecione Confirm.
- Em Select build/version number, escolha uma das seguintes apresentações de gráficos.
- Xfest 2019 Graphics Track PowerPoints
- Xfest 2019 Graphics Track Videos
- Selecione Download Now e aguarde a conclusão do download do arquivo .zip.
- Acesse sua pasta local Downloads e descompacte (extraia) os arquivos da pasta compactada.
Baixar os exemplos de console do GDK mencionados neste tópico
- Acesse Downloads do Game Development Kit (GDK).
- Em Select file type, selecione GDK e, em seguida, selecione Confirm.
- Em Select build/version number, escolha a opção Microsoft GDKX (Sample only) mais recente.
- Selecione Download Now e aguarde a conclusão do download do arquivo .zip.
- Acesse sua pasta local Downloads e descompacte (extraia) os arquivos da pasta compactada.
- Selecione GDKSamples > Graphics. Procure o exemplo.
