WikiDer > High-Level-Shader-Sprache
High-Level-Shader-Sprache (HLSL) ist a Programmiersprache was wird verwendet für Pixelschattierung von dreidimensionalGrafik in Computerspielen und anderen Programmen in Fenster.
HLSL wurde eingeführt in Directx 9 (eine Sammlung von APIs die es Programmierern leichter macht, Computerspiele zu programmieren), als Ersatz für die VersammlungSprache, die zuvor (seit DirectX 8) verwendet wurde, um komplexere Vertex zu erstellen und Pixel-Shader schreiben.
High Level Shader Language ist a Hochsprache wie die Programmiersprache C, auf dem es basiert, ist jedoch eingeschränkter als C, da es sich auf die Programmierung von Pixel-Shadern konzentriert.
Die Sprache wurde mit der Veröffentlichung von . weiterentwickelt DirectX 10.
Pixelshader-Vergleich
| PS_2_0 | PS_2_a | PS_2_b | PS_3_0[1] | PS_4_0[2] | |
|---|---|---|---|---|---|
| Abhängiges Texturlimit | 4 | unbegrenzt | 4 | unbegrenzt | unbegrenzt |
| Texturbefehlslimit | 32 | unbegrenzt | unbegrenzt | unbegrenzt | unbegrenzt |
| Position registrieren | |||||
| Anweisungsschlitze | 32 64 | 512 | 512 | ≥ 512 | ≥ 65536 |
| Ausgeführte Anweisungen | 32 64 | 512 | 512 | 65536 | unbegrenzt |
| Texturanweisungen | 4 | Unbegrenzt | 4 | unbegrenzt | unbegrenzt |
| Interpolierte Register | 2 8 | 2 8 | 2 8 | 10 | 32 |
| Anweisungsvorhersage | |||||
| Inhaltseingaberegister | |||||
| Temporäre Register | 12 | 22 | 32 | 32 | 4096 |
| feste Register | 32 | 32 | 32 | 224 | 16x4096 |
| Schlichtung brutzelnd | |||||
| Verlaufsanweisungen | |||||
| Gangzähler registrieren | |||||
| Gesichtsregister (2-seitige Beleuchtung) | |||||
| Dynamische Tracking-Steuerung | 24 | ||||
| Bitweise Operatoren | |||||
| Native ganze Zahlen |
- PS_2_0 = DirectX 9.0-Original Shader-Modell 2 Spezifikation.
- PS_2_a = NVIDIA GeForce FX-optimiertes Modell.
- PS_2_b = ATIA Radeon X700, X800, X850 Shader-Modell, DirectX 9.0b.
- PS_3_0 = Shader-Modell 3.
- PS_4_0 = Shader-Modell 4.
"32 64" für Ausgeführte Anweisungen bedeutet "32 Texturanweisungen und 64 arithmetische Anweisungen".
Vertex-Shader-Vergleich
| VS_2_0 | VS_2_a | VS_3_0[1] | VS_4_0[2] | |
|---|---|---|---|---|
| # der Anweisungen-Slots | 256 | 256 | ≥ 512 | 4096 |
| Max. Anzahl der Ausführung von Anweisungen | 65536 | 65536 | 65536 | 65536 |
| Anweisungsvorhersage | ||||
| Temporäre Register | 12 | 13 | 32 | 4096 |
| # konstante Register | ≥ 256 | ≥ 256 | ≥ 256 | 16x4096 |
| Statische Flusskontrolle | ||||
| Dynamische Flusskontrolle | ||||
| Dynamische Tracking-Tiefe | 24 | 24 | ||
| Vertex-Texturabruf | KA | |||
| # Textursampler | NACH DEM | NACH DEM | 4 | 128 |
| Geometrie-Instanziierung Unterstützung | ||||
| Bitweise Operatoren | ||||
| Native ganze Zahlen |
- VS_2_0 = DirectX 9.0-Original Shader-Modell 2 Spezifikation.
- VS_2_a = NVIDIA GeForce FX-optimiertes Modell.
- VS_3_0 = Shader-Modell 3.
- VS_4_0 = Shader-Modell 4.
| Quellen, Anmerkungen und/oder Verweise |