High Level Shader Language (HLSL) is een shading taal (niet te verwarren met 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_0 PS_2_a PS_2_b PS_3_0Shader Model 3.0, Ashu Rege, NVIDIA Developer Technology Group, 2004. PS_4_0The Direct3D 10 System, David Blythe, Microsoft Corporation, 2006.Dependent texture limiet4 onbeperkt 4 onbeperkt onbeperktTexture instructie limiet32 onbeperkt onbeperkt onbeperkt onbeperktPositie register Instructie slots32 + 64 512 512 ≥ 512 ≥ 65536Uitgevoerde instructies32 + 64 512 512 65536 onbeperktTexture indirecties4 Onbeperkt 4 onbeperkt onbeperktInterpolated registers2 + 8 2 + 8 2 + 8 10 32Instructie voorspelling Inhoud invoer registers Tijdelijke registers12 22 32 32 4096vaste registers32 32 32 224 16x4096Arbitrary swizzling Gradient instructions Loop teller register gezicht register (2-sided lighting) Dynamische volgcontrole 24 Bitwise Operators Native Integers
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_0 VS_2_a VS_3_0 VS_4_0# van instructies slots256 256 ≥ 512 4096Max # van instructies uitvoering65536 65536 65536 65536Instructie Predicatie Tijdelijke Registers12 13 32 4096# constant registers≥ 256 ≥ 256 ≥ 256 16x4096Static Flow Control Dynamic Flow Control Dynamische volgcontrole Diepte 24 24 Vertex Texture Fetch KA# of texture samplersN/A N/A 4 128Geometry instancing ondersteuning Bitwise Operators Native Integers
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.
Categorie:Programmeertaal