Dynamische Verknüpfung

Grafikentwickler erstellen manchmal große, universelle Shader, die von einer Vielzahl von Szenenelementen verwendet werden können. Zur Laufzeit führt der Shader bedingt Code aus, der für die jeweilige Situation geeignet ist. Leider verwenden diese großen, universellen Shader ineffizient Allgemeine Register (GPRs) und können viel langsamer sein als kleinere, gezieltere Shader.

Das Shadermodell 5 behebt dieses Leistungsproblem durch die Einführung einer dynamischen Shaderverknüpfung. Die dynamische Verknüpfung trennt Shadercodefragmente mithilfe von Schnittstellen und virtuellen Funktionen und ermöglicht der Anwendung die Auswahl des Fragments, das zur Zeichnungszeit verwendet werden soll. Dadurch wird die Leistung verbessert, indem nur der erforderliche Shadercode und nicht der gesamte große Universelle Shader gebunden wird.

In diesem Abschnitt

Element BESCHREIBUNG
Speichern von Variablen und Typen für Shader, die freigegeben werden sollen
Beschreibt das Klassenverknüpfungsobjekt zum Speichern von Variablen und Typen, die von mehreren Shadern gemeinsam verwendet werden können.
Schnittstellen und Klassen
Beschreibt die Verwendung von HLSL-Schnittstellen und -Klassen zum Implementieren dynamischer Verknüpfungen.
Schnittstellennutzungseinschränkungen
Beschreibt Einschränkungen für die Verwendung von Schnittstellen im Shadercode.

HLSL