Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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