Variable Rate Shading ist eine Hardwarefunktion, die mit den NVIDIA Turing-GPUs eingeführt und über die Erweiterung GL_NV_shading_rate_image verfügbar gemacht wird.
Durch die Schattierung mit variabler Rate kann die Hardware Grundelemente mit einer anderen Frequenz als der Rasterisierungsrate schattieren. Der Benutzer kann zwischen verschiedenen Raten wählen, darunter keine Schattierung, normale Auflösung, halbe Auflösung und viertel Auflösung. Wenn das Rendering Multisampling verwendet, kann die Schattierungsrate erhöht werden, um die Schattierung mehrerer Samples innerhalb desselben Grundelements zu ermöglichen. Dadurch kann das vom Shader generierte Aliasing reduziert werden. Die Schattierungsrate wird für Pixelblöcke mit einer konstanten Rate innerhalb jedes Blocks definiert.
Das Beispiel ermöglicht es dem Benutzer, vordefinierte Schattierungsraten auszuwählen. Wenn Sie „visualizeShadingRate“ aktivieren, wird ein farbcodiertes Bild der Schattierungsrate pro Pixel angezeigt.
Es ist möglich, die Schattierungsrate pro Dreieck im Vertex-Shader zu variieren; Im Beispiel werden alle grünen Objekte für die volle Schattierungsrate ausgewählt. Dies kann über das Menü deaktiviert werden.
Da die Reduzierung der Schattierungsrate geringfügig sein kann, ermöglicht das Beispiel das Rendern mit einer niedrigeren Auflösung und das „Vergrößern“ über die Einstellung „Framebuffer-Skalierung“.
Klonen Sie dieses und andere interessante nvpro-samples-Repositorys idealerweise in ein gemeinsames Unterverzeichnis. Sie benötigen immer nvpro_core. Der nvpro_core wird entweder als Unterverzeichnis des Beispiels oder ein Verzeichnis höher durchsucht.
Wenn Sie an mehreren Beispielen interessiert sind, können Sie den CMake „build_all“ als Einstiegspunkt verwenden. Außerdem haben Sie beim Erstellen der Lösung die Möglichkeit, einzelne Beispiele zu aktivieren/deaktivieren.