Estágio do Vertex-shader
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. Os sombreadores de vértice sempre operam em um vértice de entrada único e produzem um vértice de saída único. O estágio de sombreador de vértice deve estar sempre ativo para que o pipeline seja executado. Se nenhuma modificação de vértice ou transformação for necessária, um sombreador de vértice de passagem deve ser criado e definido para 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 a um nível de vértice, as IDs geradas pelo hardware podem somente ser alimentadas no primeiro estágio que as entende, esses valores de ID só podem ser alimentados no estágio de sombreador de vértice.
Os sombreadores de vértice sempre são executados em todos os vértices, incluindo vértices adjacentes nas 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)eSampleGrad (DirectX HLSL Texture Object)).