High Level Shader Language

High Level Shader Language (HLSL) is een programmeertaal die gebruikt wordt voor pixel shading van driedimensionale graphics in computerspellen en andere programma's in Windows.

HLSL werd geïntroduceerd in DirectX 9 (een verzameling van APIs die het programmeurs eenvoudiger maakt computerspellen te programmeren), als vervanging voor de Assembly-taal die daarvoor gebruikt werd (sinds DirectX 8), om meer complexe vertex- en pixel shaders te schrijven.

High Level Shader Language is een high level language zoals de programmeertaal C, waar het op gebaseerd is, maar het is meer gelimiteerd dan C omdat het toegespitst is op het programmeren van pixel shaders.

De taal werd nog verder ontwikkeld bij de release van DirectX 10.

Pixel shader comparison

  PS_2_0PS_2_aPS_2_bPS_3_0[1]PS_4_0[2]
Dependent texture limiet 4onbeperkt4onbeperktonbeperkt
Texture instructie limiet 32onbeperktonbeperktonbeperktonbeperkt
Positie register  Nee Nee Nee Ja Ja
Instructie slots 32 + 64512512≥ 512≥ 65536
Uitgevoerde instructies 32 + 6451251265536onbeperkt
Texture indirecties 4Onbeperkt4onbeperktonbeperkt
Interpolated registers 2 + 82 + 82 + 81032
Instructie voorspelling  Nee Ja Nee Ja Nee
Inhoud invoer registers  Nee Nee Nee Ja Ja
Tijdelijke registers 122232324096
vaste registers 32323222416x4096
Arbitrary swizzling  Nee Ja Nee Ja Ja
Gradient instructions  Nee Ja Nee Ja Ja
Loop teller register  Nee Nee Nee Ja Ja
gezicht register (2-sided lighting)  Nee Nee Nee Ja Ja
Dynamische volgcontrole  Nee Nee Nee24 Ja
Bitwise Operators  Nee Nee Nee Nee Ja
Native Integers  Nee Nee Nee Nee Ja
  • PS_2_0 = DirectX 9.0 originele Shader Model 2 specificatie.
  • PS_2_a = NVIDIA GeForce FX-geoptimaliseerd model.
  • PS_2_b = ATI Radeon X700, X800, X850 shader model, DirectX 9.0b.
  • PS_3_0 = Shader Model 3.
  • PS_4_0 = Shader Model 4.

"32 + 64" voor Executed Instructions betekent "32 texture instructies en 64 arithmetic instructies."

Vertex shader comparison

  VS_2_0VS_2_aVS_3_0[1]VS_4_0[2]
# van instructies slots 256256≥ 5124096
Max # van instructies uitvoering 65536655366553665536
Instructie Predicatie  Ja Ja Ja Ja
Tijdelijke Registers 1213324096
# constant registers ≥ 256≥ 256≥ 25616x4096
Static Flow Control  Ja Ja Ja Ja
Dynamic Flow Control  Nee Ja Ja Ja
Dynamische volgcontrole Diepte  Nee2424 Ja
Vertex Texture Fetch  Nee Nee JaKA
# of texture samplers N/AN/A4128
Geometry instancing ondersteuning  Nee Nee Ja Ja
Bitwise Operators  Nee Nee Nee Ja
Native Integers  Nee Nee Nee Ja
  • VS_2_0 = DirectX 9.0 originele Shader Model 2 specificatie.
  • VS_2_a = NVIDIA GeForce FX-geoptimaliseerd model.
  • VS_3_0 = Shader Model 3.
  • VS_4_0 = Shader Model 4.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.