Delen via


Shader-modellen versus Shader-profielen

De arceringstaal op hoog niveau voor DirectX implementeert een reeks arceringsmodellen. Met HLSL kunt u C-achtige programmeerbare shaders maken voor de Direct3D-pijplijn. Elk shader-model bouwt voort op de mogelijkheden van het model voordat het model wordt geïmplementeerd en implementeert meer functionaliteit met minder beperkingen.

Shader model 1 is gestart met DirectX 8 en bevat assemblyniveau en C-achtige instructies. Dit model heeft veel beperkingen die worden veroorzaakt door vroege programmeerbare shaderhardware. Shader-model 2 en 3 is aanzienlijk uitgebreid op het aantal instructies en arceringen voor constanten kunnen worden gebruikt. Ze zijn veel krachtiger dan shader model 1, maar hebben nog steeds enkele van de bestaande beperkingen van het eerste shader-model.

Vanaf Windows Vista is shader model 4 een compleet herontwerp. Het biedt onbeperkte instructies en constanten (binnen hardwarebeperkingen van uw machine), heeft objecten gesjabloond om patroonsampling schoner en efficiënter te maken en heeft de minste beperkingen van elk shader-model. Hiervoor is echter wel het Windows-stuurprogrammamodel vereist dat alleen beschikbaar is op het besturingssysteem Windows Vista (of hoger).

Shader-profielen

Een shader-profiel is het doel voor het compileren van een shader; in deze tabel worden de arceringsprofielen vermeld die worden ondersteund door elk shader-model.

Shader-model Arceringsprofielen
Shader Model 1 vs_1_1
Shader Model 2 ps_2_0, ps_2_x, vs_2_0, vs_2_x, ps_4_0_level_9_0, ps_4_0_level_9_1, ps_4_0_level_9_3, vs_4_0_level_9_0, vs_4_0_level_9_1, vs_4_0_level_9_3, lib_4_0_level_9_1, lib_4_0_level_9_3
Shader Model 3 ps_3_0, vs_3_0
Shader Model 4- cs_4_0, gs_4_0, ps_4_0, vs_4_0, cs_4_1, gs_4_1, ps_4_1, vs_4_1, lib_4_0, lib_4_1
Shader Model 5 cs_5_0, ds_5_0, gs_5_0, hs_5_0, ps_5_0, vs_5_0, lib_5_0 (Hoewel gs_4_0, gs_4_1, ps_4_0, ps_4_1, vs_4_0 en vs_4_1 zijn geïntroduceerd in shader-model 4.0, voegt shader-model 5 ondersteuning toe aan deze arceringsprofielen voor gestructureerde buffers en byteadresbuffers.)
Shader Model 6 cs_6_0, ds_6_0, gs_6_0, hs_6_0, ps_6_0, vs_6_0, lib_6_0

Verschillen tussen Direct3D 9 en Direct3D 10:

  • Direct3D 9 introduceerde arceringsmodellen 1, 2 en 3.
  • Direct3D 10 introduceerde shader model 4.
  • Direct3D 10.1 introduceerde shader model 4.1.

Effectprofielen

Een effectprofiel is het doel voor het compileren van een effect/shader; deze tabel bevat de effectprofielen die worden ondersteund door elke versie van Direct3D.

Verschillen tussen Direct3D 9 en Direct3D 10:

  • Direct3D 9 heeft effectframeworkprofielen geïntroduceerd fx_1_0 en fx_2_0.
  • Direct3D 10 heeft een effectframeworkprofiel geïntroduceerd fx_4_0.
  • Direct3D 10.1 heeft een effectframeworkprofiel geïntroduceerd fx_4_1.
  • Direct3D 11 heeft een effectframeworkprofiel geïntroduceerd fx_5_0.

Notitie

Deze verouderde effectenprofielen zijn afgeschaft.

-verwijzing voor HLSL-