Variable Rate Shading est une fonctionnalité matérielle introduite avec les GPU NVIDIA Turing et exposée via l'extension GL_NV_shading_rate_image.
L'ombrage à taux variable permet au matériel d'ombrager les primitives à une fréquence différente de celle du taux de rastérisation. L'utilisateur peut choisir entre différents taux, notamment sans ombrage, résolution normale, demi-résolution et quart de résolution. Si le rendu utilise le multi-échantillonnage, le taux d'ombrage peut être augmenté pour permettre l'ombrage de plusieurs échantillons au sein de la même primitive. Cela peut réduire l'alias généré par le shader. Le taux d'ombrage est défini pour des blocs de pixels avec un taux constant au sein de chaque bloc.
L'échantillon permet à l'utilisateur de choisir des taux d'ombrage prédéfinis. Cocher "visualizeShadingRate" affichera une image codée en couleur du taux d'ombrage par pixel.
Il est possible de faire varier le taux d'ombrage par triangle dans le vertex shader ; dans l'échantillon, tous les objets verts sont sélectionnés pour un taux d'ombrage complet. Ceci peut être désactivé à partir du menu.
Comme la réduction du taux d'ombrage peut être subtile, l'échantillon permet un rendu à une résolution inférieure et un « zoom avant » via le paramètre « mise à l'échelle du framebuffer ».
Idéalement, clonez ce référentiel ainsi que d’autres référentiels nvpro-samples intéressants dans un sous-répertoire commun. Vous aurez toujours besoin de nvpro_core. Le nvpro_core est recherché soit dans un sous-répertoire de l'exemple, soit dans un répertoire supérieur.
Si vous êtes intéressé par plusieurs exemples, vous pouvez utiliser build_all CMake comme point d'entrée ; il vous donnera également des options pour activer/désactiver des échantillons individuels lors de la création de la solution.