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. |
Zugehörige Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für