Udostępnij za pośrednictwem


Modele cieniowania a profile cieniowania

Język cieniowania wysokiego poziomu dla directX implementuje serię modeli cieniowania. Za pomocą protokołu HLSL można utworzyć programowalne cieniowania podobne do języka C dla potoku Direct3D. Każdy model cieniowania opiera się na możliwościach modelu przed nim, implementuje większą funkcjonalność z mniejszą liczbą ograniczeń.

Model cieniowania 1 rozpoczął się od wersji DirectX 8 i zawierał instrukcje dotyczące poziomu zestawu i języka C. Ten model ma wiele ograniczeń spowodowanych wczesnym programowalnym sprzętem cieniowania. Model cieniowania 2 i 3 znacznie rozszerzył się na liczbę instrukcji, a cieniowania stałe mogą być używane. Są one o wiele bardziej wydajne niż model cieniowania 1, ale nadal niosą niektóre z istniejących ograniczeń pierwszego modelu cieniowania.

Począwszy od systemu Windows Vista, model cieniowania 4 jest kompletnym przeprojektem. Umożliwia nieograniczone instrukcje i stałe (w ramach ograniczeń sprzętowych maszyny), ma szablonowe obiekty, aby próbkowanie tekstur było czystsze i bardziej wydajne i ma najmniejsze ograniczenia dowolnego modelu cieniowania. Wymaga to jednak modelu sterowników systemu Windows, który jest dostępny tylko w systemie operacyjnym Windows Vista (lub nowszym).

Profile cieniowania

Profil cieniowania jest elementem docelowym kompilowania cieniowania; Ta tabela zawiera listę profilów cieniowania obsługiwanych przez każdy model cieniowania.

Model cieniowania Profile cieniowania
model cieniowania 1 vs_1_1
Model cieniowania 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
model cieniowania 3 ps_3_0, vs_3_0
Model cieniowania 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
Model cieniowania 5 cs_5_0, ds_5_0, gs_5_0, hs_5_0, ps_5_0, vs_5_0, lib_5_0 (chociaż gs_4_0, gs_4_1, ps_4_0, ps_4_1, vs_4_0 i vs_4_1 zostały wprowadzone w modelu cieniowania 4.0, model cieniowania 5 dodaje obsługę tych profilów cieniowania dla strukturalnych i adresów bajtowych).
Model cieniowania 6 cs_6_0, ds_6_0, gs_6_0, hs_6_0, ps_6_0, vs_6_0, lib_6_0

Różnice między direct3D 9 i Direct3D 10:

  • Funkcja Direct3D 9 wprowadziła modele cieniowania 1, 2 i 3.
  • Direct3D 10 wprowadził model cieniowania 4.
  • Direct3D 10.1 wprowadził model cieniowania 4.1.

Profile efektów

Profil efektu jest elementem docelowym kompilowania efektu/cieniowania; Ta tabela zawiera listę profilów efektów obsługiwanych przez każdą wersję direct3D.

Różnice między direct3D 9 i Direct3D 10:

  • W wersji Direct3D 9 wprowadzono profile struktury efektów fx_1_0 i fx_2_0.
  • Funkcja Direct3D 10 wprowadziła fx_4_0 profil struktury efektów.
  • W wersji Direct3D 10.1 wprowadzono fx_4_1 profilu platformy efektów.
  • W wersji Direct3D 11 wprowadzono fx_5_0 profil struktury efektów.

Nuta

Te starsze profile efektów są przestarzałe.

dokumentacja dla HLSL