Modelul unificat de umbrire este un termen care este folosit pentru a descrie două concepte similare, dar în același timp separate: o arhitectură de umbrire unificată ( în engleză Unified Shading Architecture ), care descrie nivelul hardware și un model de umbrire unificat , care descrie stratul software. .
Modelul Unified Shader, cunoscut în Direct3D 10 ca Shader Model 4.0, utilizează un set consistent (similar) de comenzi pentru toate tipurile de shader [1] . Shaderele de toate tipurile au capacități foarte asemănătoare - pot „citi” texturi , buffere de date și pot executa același set de instrucțiuni aritmetice.
Cu toate acestea, setul de instrucțiuni nu este complet același în toate tipurile de shader; de exemplu, doar pixel shader -ul poate citi texturi cu gradiente de coordonate implicite; și numai geometry shader poate reda primitive suplimentare și așa mai departe [1] .
Modelele de shader timpurii (Shader Model 1.x) foloseau seturi de instrucțiuni foarte diferite pentru vertex și pixel shaders, unde vertex shaders aveau un set de instrucțiuni mult mai flexibil. Modelele de shader ulterioare (2.x și 3.0) au redus din ce în ce mai mult diferențele, ducând la un model de shader unificat.
Atunci când un GPU acceptă un model de shader unificat, este logic să-și proiecteze unitățile de calcul astfel încât oricare dintre acele unități să poată executa orice tip de shader. Când unitățile de calcul GPU sunt „unificate”, adică capabile să execute orice tip de program shader, aceasta se numește „Arhitectură Shader unificată”. Cel mai adesea, astfel de GPU-uri sunt compuse dintr-o serie de unități de calcul și unități dinamice de programare/echilibrare a sarcinii pentru a distribui execuția programului shader pe toate unitățile de calcul.
Hardware-ul nu este necesar să aibă o arhitectură de shader unificat pentru a suporta un model de shader unificat și invers. GPU-urile compatibile cu Direct3D 10 pot avea în continuare procesoare dedicate cu geometrie, vârfuri și pixeli. GPU-urile mai vechi din punct de vedere tehnologic care acceptă Shader Model 3.0 pot executa parțial modelul Unified Shader, așa cum se vede cu GPU-ul Xenos pentru consola de jocuri Xbox 360 .
Arhitectura shader unificată permite utilizarea mai flexibilă a resurselor GPU [2] . De exemplu, în condiții de simulare a geometriei de nivel ridicat, arhitectura unificată de umbrire poate folosi toate unitățile GPU pentru a calcula umbrirea de vârf și de geometrie. Si invers; când geometria nu este complexă, dar sunt simulate multe efecte complexe ale pixelilor, cum ar fi maparea ocluziei Parallax , sistemul de particule și așa mai departe, toate unitățile de calcul pot fi direcționate pentru a executa pixel shaders.
Arhitectura shader unificată este acceptată de GPU-urile GeForce 8 , Radeon R600 , S3 Graphics Chrome 400, Intel GMA X3000, GPU pentru Xbox 360 , seria Qualcomm Adreno 200 , Mali Midgard, GPU-uri PowerVR SGX și nu numai.