Odwołanie do cieniowania asm
Cieniowania napędzają programowalny potok grafiki.
Odwołanie do cieniowania wierzchołków
Różnice cieniowania wierzchołków podsumowuje różnice między wersjami cieniowania wierzchołków.
Odwołanie do cieniowania pikseli
Różnice cieniowania pikseli podsumowuje różnice między wersjami cieniowania pikseli.
Odwołanie do modelu cieniowania 4 i 5
Sekcje Shader Model 4 Assembly i Shader Model 5 Assembly opisują instrukcje obsługiwane przez model cieniowania 4 i 5.
Zachowanie stałych rejestrów w cieniowaniach zestawów
Istnieją dwa sposoby ustawiania rejestrów stałych w cieniatorze zestawu:
- Zadeklaruj stałą cieniowania w kodzie zestawu przy użyciu jednej z instrukcji def*.
- Użyj jednej z metod interfejsu API Set***ShaderConstant*.
Stałe cieniowania Direct3D 9
W trybie Direct3D 9 okres istnienia zdefiniowanych stałych w danym cieniatorze jest ograniczony tylko do wykonywania tego cieniowania (i nie jest zastępowalny). Zdefiniowane stałe w trybie Direct3D 9 nie mają efektów ubocznych poza cieniatorem.
Oto przykład użycia funkcji Direct3D 9:
Given:
Create shader1 which references c4 and defines it with the def instruction
Scenario 1:
Call Set***Shader shader1
Call Set***ShaderConstant* to set c4
Call Draw
Result: The shader will see the def'd value in c4
Given:
Scenario 1 has just completed
Create shader2 (which references c4 but does not use the def instruction
to define it)
Scenario 2:
Call Set***Shader shader2
Call Draw
Result: The shader will see the value last set in c4 by
Set***ShaderConstant* in scenario 1. This is because shader 2
didn't def c4.
W trybie Direct3D 9 wywołanie metody Get***ShaderConstant* spowoduje pobranie tylko wartości stałych ustawionych za pomocą polecenia Set***ShaderConstant*.
Stałe cieniowania Direct3D 8
To zachowanie różni się w wersji Direct3D 8.x.
Given:
Create shader1 which references c4 and defines it with the def instruction
Scenario 1 (repeated with Direct3D 8):
Call Set***Shader with shader1
Call Set***ShaderConstant to set c4
Call Draw
Result: The shader will see the value in c4 from Set***ShaderConstant
W trybie Direct3D 8.x Set***ShaderConstant natychmiast następuje. Rozważmy ten scenariusz:
Given:
Create shader1 which references c4 and defines it with the def instruction
Scenario 3:
Call Set***Shader with shader1
Call Draw
Result: The shader will see the def'd value in c4
Given:
Scenario 3 has just completed
Create shader2 (which references c4 but does not use the def instruction
to define it)
Scenario 4 :
Call Set***Shader with shader2
Call Draw
Result: The shader will see the def'd value in c4 (set by def in shader 1)
Niepożądanym wynikiem jest to, że kolejność ustawiania cieniowania może mieć wpływ na obserwowane zachowanie poszczególnych cieniowania.
Wymagania dotyczące modelu sterowników cieniowania
Interfejsy Direct3D 9 są ograniczone do sterowników interfejsu sterownika urządzenia (DDI), które są na poziomie DirectX 7 i wyższym. Aby sprawdzić poziom DDI, uruchom narzędzie diagnostyczne DirectX i sprawdź zapisany plik tekstowy.
Do celów referencyjnych interfejsy Direct3D 8 działają tylko na sterownikach DDI, które są na poziomie DirectX 6 i wyższym.
Format binarny cieniowania
Układ bitowy strumienia instrukcji cieniowania jest zdefiniowany w D3d9types.h. Jeśli chcesz zaprojektować własny kompilator cieniowania lub narzędzia budowlane i chcesz uzyskać więcej informacji na temat strumienia tokenu cieniowania, zapoznaj się z zestawem Direct3D 9 Driver Development Kit (DDK).
Język cieniowania przypominający język C
Zobacz HLSL Reference to experience a C-like shader language (Dokumentacja języka cieniowania przypominającego język C).
Tematy pokrewne
-
dokumentacja dla HLSL