Referenční dokumentace shaderu Asm
Shadery řídí programovatelný grafický kanál.
Referenční dokumentace shaderu vrcholů
rozdíly ve shaderu vrcholů shrnuje rozdíly mezi verzemi shaderu vrcholů.
Referenční dokumentace shaderu pixelů
rozdíly shaderu pixelů shrnuje rozdíly mezi verzemi shaderu pixelů.
Referenční dokumentace k modelu shaderu 4 a 5
Oddíly sestavení Shader Model 4 a sestavení shaderu 5 popisují pokyny, které model shaderu 4 a 5 podporuje.
Chování konstantních registrů v shadery sestavení
Existují dva způsoby nastavení konstantních registrů v shaderu sestavení:
- Deklarujte konstantu shaderu v kódu sestavení pomocí jednoho z instrukcí def*.
- Použijte jednu z metod rozhraní API Set****ShaderConstant*.
Konstanty shaderu Direct3D 9
V Direct3D 9 je životnost definovaných konstant v daném shaderu omezena pouze na spuštění tohoto shaderu (a je nepřepsatelný). Definované konstanty v Direct3D 9 nemají žádné vedlejší účinky mimo shader.
Tady je příklad použití 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.
Volání Get***ShaderConstant* v Direct3D 9 načte pouze konstantní hodnoty nastavené pomocí set***ShaderConstant*.
Konstanty shaderu Direct3D 8
Toto chování se u Direct3D 8.x liší.
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
V režimu Direct3D 8.x Set***ShaderConstant se projeví okamžitě. Představte si tento scénář:
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)
Nežádoucím výsledkem je, že pořadí, ve kterém jsou nastaveny shadery, může ovlivnit pozorované chování jednotlivých shaderů.
Požadavky na model ovladače shaderu
Rozhraní Direct3D 9 jsou omezena na ovladače rozhraní ovladačů zařízení (DDI), které jsou úrovně DirectX 7 a vyšší. Pokud chcete zkontrolovat úroveň DDI, spusťte nástroj pro diagnostiku DirectX a prozkoumejte uložený textový soubor.
Pro referenci rozhraní Direct3D 8 fungují pouze na ovladačích DDI, které jsou úrovně DirectX 6 a vyšší.
Binární formát shaderu
Bitové rozložení streamu instrukce shaderu je definováno v D3d9types.h. Pokud chcete navrhnout vlastní kompilátor shaderu nebo stavební nástroje a chcete další informace o streamu tokenů shaderu, přečtěte si sadu DDK (Direct3D 9 Driver Development Kit).
Jazyk shaderu podobný jazyku C
Informace referenční HLSL a podívejte se na jazyk shaderu podobný jazyku C.
Související témata
-
Referenční pro HLSL