Programmierhandbuch für HLSL

Daten gelangen als Datenstrom von Grundtypen in die Grafikpipeline und werden von den Shaderphasen verarbeitet. Die tatsächlichen Shaderphasen hängen von der Version von Direct3D ab, umfassen jedoch sicherlich die Vertex-, Pixel- und Geometriestufen. Weitere Phasen umfassen die Hull- und Domänenshader für die Tessellation und den Compute-Shader. Diese Phasen sind mit der High Level Shading Language (HLSL) vollständig programmierbar.

HLSL-Shader können zur Erstellungszeit oder zur Laufzeit kompiliert und zur Laufzeit in die entsprechende Pipelinephase festgelegt werden. Direct3D 9-Shader können mit Shadermodell 1, Shadermodell 2 und Shadermodell 3 entworfen werden; Direct3D 10-Shader können nur mit Shadermodell 4 entworfen werden. Direct3D 11-Shader können mit Shadermodell 5 entworfen werden. Direct3D 11.3 und Direct3D 12 können auf Shadermodell 5.1 und Direct3D 12 auch auf Shadermodell 6 entworfen werden.

In diesem Abschnitt

Thema Beschreibung
Verwenden der Shaderverknüpfung Wir zeigen, wie vorkompilierte HLSL-Funktionen erstellt, in Bibliotheken verpackt und zur Laufzeit in vollständigen Shadern verknüpft werden.
Schreiben von HLSL-Shadern in Direct3D 9
Verwenden von Shadern in Direct3D 9
Verwenden von Shadern in Direct3D 10
Optimieren von HLSL-Shadern
Debuggen von Shadern in Visual Studio Das neueste Tool zum Debuggen von Shadern ist jetzt als Feature in Microsoft Visual Studio mit dem Namen Visual Studio-Grafikdebugger enthalten.
Kompilieren von Shadern Sehen wir uns nun verschiedene Möglichkeiten zum Kompilieren von Shadercode und Konventionen für Dateierweiterungen für Shadercode an.
Angeben von Compilerzielen Hier werden die Ziele für verschiedene Profile aufgelistet, die von den Funktionen D3DCompile* und vom HLSL-Compiler unterstützt werden.
Auspacken und Packen von DXGI_FORMAT für In-Place Bildbearbeitung
Verwenden der minimalen HLSL-Genauigkeit Ab Windows 8 können Grafiktreiber HLSL-Skalardatentypen mit minimaler Genauigkeit implementieren, indem eine beliebige Genauigkeit verwendet wird, die größer oder gleich der angegebenen Bitgenauigkeit ist.
HLSL-Shadermodell 5
HLSL-Shadermodell 5.1 In diesem Abschnitt werden die Features des Shadermodells 5.1 beschrieben, die in der Praxis für D3D12 und D3D11.3 gelten. Alle DirectX 12-Hardware unterstützt shader Model 5.1.
HLSL Shader Model 6.0 Beschreibt die systeminternen Wellenoperationen, die dem HLSL-Shadermodell 6.0 hinzugefügt wurden.
HLSL-Shadermodell 6.4 Beschreibt die intrinsischen Machine Learning-Funktionen, die dem HLSL-Shadermodell 6.4 hinzugefügt wurden.