WikiDer > High-Level-Shader-Sprache

High Level Shader Language

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_0PS_2_aPS_2_bPS_3_0[1]PS_4_0[2]
Abhängiges Texturlimit4unbegrenzt4unbegrenztunbegrenzt
Texturbefehlslimit32unbegrenztunbegrenztunbegrenztunbegrenzt
Position registrierenNein NeinNein NeinNein NeinJa JaJa Ja
Anweisungsschlitze32 64512512≥ 512≥ 65536
Ausgeführte Anweisungen32 6451251265536unbegrenzt
Texturanweisungen4Unbegrenzt4unbegrenztunbegrenzt
Interpolierte Register2 82 82 81032
AnweisungsvorhersageNein NeinJa JaNein NeinJa JaNein Nein
InhaltseingaberegisterNein NeinNein NeinNein NeinJa JaJa Ja
Temporäre Register122232324096
feste Register32323222416x4096
Schlichtung brutzelndNein NeinJa JaNein NeinJa JaJa Ja
VerlaufsanweisungenNein NeinJa JaNein NeinJa JaJa Ja
Gangzähler registrierenNein NeinNein NeinNein NeinJa JaJa Ja
Gesichtsregister (2-seitige Beleuchtung)Nein NeinNein NeinNein NeinJa JaJa Ja
Dynamische Tracking-SteuerungNein NeinNein NeinNein Nein24Ja Ja
Bitweise OperatorenNein NeinNein NeinNein NeinNein NeinJa Ja
Native ganze ZahlenNein NeinNein NeinNein NeinNein NeinJa Ja
  • 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_0VS_2_aVS_3_0[1]VS_4_0[2]
# der Anweisungen-Slots256256≥ 5124096
Max. Anzahl der Ausführung von Anweisungen65536655366553665536
AnweisungsvorhersageJa JaJa JaJa JaJa Ja
Temporäre Register1213324096
# konstante Register≥ 256≥ 256≥ 25616x4096
Statische FlusskontrolleJa JaJa JaJa JaJa Ja
Dynamische FlusskontrolleNein NeinJa JaJa JaJa Ja
Dynamische Tracking-TiefeNein Nein2424Ja Ja
Vertex-TexturabrufNein NeinNein NeinJa JaKA
# TextursamplerNACH DEMNACH DEM4128
Geometrie-Instanziierung UnterstützungNein NeinNein NeinJa JaJa Ja
Bitweise OperatorenNein NeinNein NeinNein NeinJa Ja
Native ganze ZahlenNein NeinNein NeinNein NeinJa Ja
  • 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.