Variable Rate Shading é um recurso de hardware introduzido com as GPUs NVIDIA Turing e exposto por meio da extensão GL_NV_shading_rate_image.
O sombreamento de taxa variável permite que o hardware sombreie primitivos em uma frequência diferente da taxa de rasterização. O usuário pode escolher entre várias taxas, incluindo sem sombreamento, resolução normal, meia resolução e resolução de um quarto. Se a renderização usar amostragem múltipla, a taxa de sombreamento poderá ser aumentada para permitir que múltiplas amostras dentro do mesmo primitivo sejam sombreadas. Isso pode reduzir o alias gerado pelo shader. A taxa de sombreamento é definida para blocos de pixels com uma taxa constante dentro de cada bloco.
A amostra permite que o usuário escolha taxas de sombreamento predefinidas. Marcar "visualizeShadingRate" mostrará uma imagem codificada por cores da taxa de sombreamento por pixel.
É possível variar a taxa de sombreamento por triângulo no sombreador de vértice; na amostra, todos os objetos verdes são selecionados para taxa de sombreamento total. Isso pode ser desativado no menu.
Como a redução na taxa de sombreamento pode ser sutil, a amostra permite renderizar em uma resolução mais baixa e "aumentar o zoom" através da configuração "escala do framebuffer".
Idealmente, clone este e outros repositórios nvpro-samples interessantes em um subdiretório comum. Você sempre precisará do nvpro_core. O nvpro_core é pesquisado como um subdiretório da amostra ou um diretório acima.
Se você estiver interessado em vários exemplos, poderá usar build_all CMake como ponto de entrada; também lhe dará opções para ativar/desativar amostras individuais ao criar a solução.