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.
Tematy pokrewne
-
dokumentacja dla HLSL