Sdílet prostřednictvím


vs_3_0

Programovatelný shader vrcholů se skládá ze sady instrukcí, které pracují s daty vrcholů. Registruje přenos dat do a z ALU. Další ovládací prvek lze použít k úpravě instrukce, výsledků nebo toho, jaká data se zapíšou.

Verze vrcholového shaderu vs_3_0 rozšiřuje sadu funkcí podporovanou vs_2_x. Každá z funkcí v vs_2_X, které vyžadují nastavení limitu, je k dispozici v vs_3_0 bez vyžadování limitu.

Nové funkce

Nové funkce verze vrcholového shaderu vs_3_0 jsou uvedeny v následujících částech.

Indexování registrů

V dřívějších modelech shaderu lze indexovat pouze konstantní banku registru. V tomto modelu je možné indexovat následující banky registrů pomocí registru čítačů smyčky (aL):

  • Vstupní registr (v#)
  • Výstupní registr (o#)

Textury vrcholů

Tento model shaderu podporuje vyhledávání textur v shaderu vrcholů pomocí texldl. Modul vrcholů má čtyři fáze vzorkování textury (odlišné od vzorkovníku mapy posunutí a vzorkovače textury v pixelovém modulu), které lze použít k vzorkování textur nastavených v těchto fázích. Viz textury vrcholů v vs_3_0 (DirectX HLSL).

Frekvence datových proudů vrcholů

Tato funkce umožňuje inicializovat podmnožinu vstupních registrů rychlostí odlišnou od jednoho vrcholu. Viz výkresu neindexované geometrie.

Výstup shaderu

Podobně jako u vs_2_0 se výstup shaderu může u statického řízení toku lišit. Při dynamickém větvení buďte opatrní, protože to může způsobit, že se výstupy shaderu budou lišit podle vrcholu. Výsledkem budou nepředvídatelné výsledky na jiném hardwaru.

Dynamické řízení toku

Podporují se všechny pokyny pro řízení dynamického toku. Maximální povolená hodnota hloubky vnoření je 24. (Podrobnosti najdete v tématu omezení vnoření toku.)

Dočasné registry

Podporuje se celkem 32 dočasných registrů (r#).

Řízení statického toku

Maximální hloubka vnoření pro smyčku – vs./rep – vs. je 4. Maximální hloubka vnoření pro volání – vs. logická hodnota volání/– vs./pred callnz – vs. je 4. Pro , pokud je logická hodnota – vs., maximální povolená hodnota hloubky vnoření je 24. (Podrobnosti najdete v tématu omezení vnoření toku.)

Tvrzení

Predikace instrukcí je podporovaná. Použijte setp_comp – vs. k nastavení predikátu.

Počet instrukcí

Každý vrchol shader je povolen kdekoli od 512 až do počtu slotů v MaxVertexShader30InstructionSlots v D3DCAPS9. Počet spuštění instrukcí může být mnohem vyšší kvůli podpoře smyčky nebo opakování; To je však omezeno MaxVShaderInstructionsExecuted v D3DCAPS9, které by mělo být alespoň 0xFFFF.

Caps zařízení

Pokud je podporován vrchol shader 3_0, jsou v hardwaru podporovány následující limity (minimálně):

Čepice Schopnost
Caps shaderu
  • DynamicFlowControlDepth je 24
  • NumTemps je 32
  • StaticFlowControlDepth je 4
  • Predikace se podporuje.
GuardBandLeft, GuardBandTop, GuardBandRight, GuardBandBottom 8K
VertexShaderVersion 3_0
MaxVertexShaderConst 256
MaxVertexShader30InstructionSlots 512
Podpora mlhy D3DPRASTERCAPS_FOGVERTEX
VertexTextureFilterCaps
D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET Prvky vrcholu v deklaraci vrcholu můžou sdílet stejný posun datového proudu.
Formáty vrcholů
  • D3DDECLTYPE_UBYTE4
  • D3DDECLTYPE_UBYTE4N
  • D3DDECLTYPE_SHORT2N
  • D3DDECLTYPE_SHORT4N
  • D3DDECLTYPE_FLOAT16_2
  • D3DDECLTYPE_FLOAT16_4

 

vrcholové shadery