Estágio de sombreador de vértice
O estágio vs (sombreador de vértice) processa vértices do assembler de entrada, executando operações por vértice, como transformações, esfolação, transformação e iluminação por vértice. Sombreadores de vértice sempre operam em um único vértice de entrada e produzem um único vértice de saída. O estágio de sombreador de vértice deve estar sempre ativo para que o pipeline seja executado. Se nenhuma modificação ou transformação de vértice for necessária, um sombreador de vértice de passagem deverá ser criado e definido como o pipeline.
O sombreador de vértice
Cada vértice de entrada do sombreador de vértice pode ser composto por até 16 vetores de 32 bits (até 4 componentes cada) e cada vértice de saída pode ser composto por até 16 vetores de 4 componentes de 32 bits. Todos os sombreadores de vértice devem ter um mínimo de uma entrada e uma saída, o que pode ser apenas um valor escalar.
O estágio de sombreador de vértice pode consumir dois valores gerados pelo sistema do assembler de entrada: VertexID e InstanceID (consulte Semântica de valor do sistema). Como VertexID e InstanceID são significativos em um nível de vértice, e as IDs geradas pelo hardware só podem ser alimentadas no primeiro estágio que os entende, esses valores de ID só podem ser alimentados no estágio de sombreador de vértice.
Sombreadores de vértice são sempre executados em todos os vértices, incluindo vértices adjacentes em topologias primitivas de entrada com adjacência. O número de vezes que o sombreador de vértice foi executado pode ser consultado da CPU usando a estatística de pipeline do VSInvocations.
Um sombreador de vértice pode executar operações de amostragem de carga e textura em que os derivados de espaço de tela não são necessários (usando funções intrínsecas HLSL: Sample (DirectX HLSL Texture Object), SampleCmpLevelZero (DirectX HLSL Texture Object)e SampleGrad (DirectX HLSL Texture Object)).