vs_3_0

Een programmeerbare hoekpunt-shader bestaat uit een set instructies die op hoekpuntgegevens werken. Registreert overdrachtsgegevens in en uit de ALU. Aanvullende controle kan worden toegepast om de instructie, de resultaten of welke gegevens worden weggeschreven te wijzigen.

Vertex shader-versie vs_3_0 breidt de functieset uit die wordt ondersteund door vs_2_x. Elk van de functies in vs_2_X waarvoor een limiet moet worden ingesteld, is beschikbaar in vs_3_0 zonder de limiet.

Nieuwe functies

Nieuwe functies van vertex shader-versie vs_3_0 worden weergegeven in de volgende secties.

Indexeringsregisters

In de eerdere shadermodellen kan alleen de bank voor het register worden geïndexeerd. In dit model kunnen de volgende registerbanken worden geïndexeerd met behulp van het lustellerregister (aL):

  • Invoerregister (v#)
  • Uitvoerregister (o#)

Hoekpunttex texturen

Dit shader-model ondersteunt het opzoeken van patronen in de hoekpunt-shader met behulp van texldl. De hoekpuntengine heeft vier patronenampleten (los van de verplaatsingskaart sampler en de texture samplers in de pixel-engine) die kunnen worden gebruikt om patronen te samplen die in die fasen zijn ingesteld. Zie hoekpuntpatroon in vs_3_0 (DirectX HLSL).

Frequentie van hoekpuntstroom

Met deze functie kan een subset van de invoerregisters worden geïnitialiseerd met een andere snelheid dan één keer per hoekpunt. Zie Teken niet-geïndexeerde geometrie.

Shader-uitvoer

Net als vs_2_0 kan de uitvoer van de shader variëren met een statisch stroombeheer. Wees voorzichtig met dynamische vertakking, omdat dit kan leiden tot shader-uitvoer per hoekpunt. Dit levert onvoorspelbare resultaten op op verschillende hardware.

Dynamisch stroombeheer

Alle instructies voor dynamisch stroombeheer worden ondersteund. De maximaal toegestane dieptewaarde voor nesten is 24. (Zie limieten voor het nesten van stroombeheer voor meer informatie.)

Tijdelijke registers

In totaal worden 32 tijdelijke registers (r#) ondersteund.

Besturingselement voor statische stroom

De maximale nestdiepte voor lus - vs/rep - versus is 4. De maximale nestdiepte voor oproep - vs/callnz bool - vs/callnz pred - vs is 4. Voor als bool - vsis de maximaal toegestane dieptewaarde voor nesten 24. (Zie limieten voor het nesten van stroombeheer voor meer informatie.)

Predicatie

Instructiepredicatie wordt ondersteund. Gebruik setp_comp - vs om het predicaatregister in te stellen.

Aantal instructies

Elke hoekpunt-shader is overal van 512 tot het aantal sleuven in MaxVertexShader30InstructionSlots in D3DCAPS9toegestaan. Het aantal instructies dat wordt uitgevoerd, kan veel hoger zijn vanwege de ondersteuning van de lus/rep; Dit wordt echter beperkt door MaxVShaderInstructionsExecuted in D3DCAPS9 die ten minste 0xFFFF moeten zijn.

Apparaatlimieten

Als Vertex Shader 3_0 wordt ondersteund, worden de volgende hoofdletters ondersteund in hardware (minimaal):

Pet Vermogen
Schaduwkappen
  • DynamicFlowControlDepth is 24
  • NumTemps is 32
  • StaticFlowControlDepth is 4
  • Predicatie wordt ondersteund.
GuardBandLeft, GuardBandTop, GuardBandRight, GuardBandBottom 8K
VertexShaderVersion 3_0
MaxVertexShaderConst 256
MaxVertexShader30InstructionSlots 512
Mistondersteuning D3DPRASTERCAPS_FOGVERTEX
VertexTextureFilterCaps
D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET Hoekpuntelementen in een hoekpuntdeclaratie kunnen dezelfde stroomverschil delen.
Hoekpuntindelingen
  • D3DDECLTYPE_UBYTE4
  • D3DDECLTYPE_UBYTE4N
  • D3DDECLTYPE_SHORT2N
  • D3DDECLTYPE_SHORT4N
  • D3DDECLTYPE_FLOAT16_2
  • D3DDECLTYPE_FLOAT16_4

 

vertex shaders