Fase del sombreador de vértices

La fase del sombreador de vértices (VS) procesa vértices del ensamblador de entrada, realizando operaciones por vértice, como transformaciones, máscara, morfología y iluminación por vértice. Los sombreadores de vértices siempre funcionan en un solo vértice de entrada y generan un solo vértice de salida. La fase del sombreador de vértices siempre debe estar activa para que se ejecute la canalización. Si no se requiere ninguna modificación o transformación de vértices, se debe crear un sombreador de vértices de paso a través y establecerlo en la canalización.

Sombreador de vértices

Cada vértice de entrada del sombreador de vértices se puede componer de hasta 16 vectores de 32 bits (hasta 4 componentes cada uno) y cada vértice de salida se puede componer de hasta 16 vectores de 4 componentes de 32 bits. Todos los sombreadores de vértices deben tener un mínimo de una entrada y una salida, que puede ser tan poco como un valor escalar.

La fase del sombreador de vértices puede consumir dos valores generados por el sistema del ensamblador de entrada: VertexID e InstanceID (consulte Semántica de valor del sistema). Dado que VertexID e InstanceID son significativos en un nivel de vértice y los identificadores generados por hardware solo se pueden introducir en la primera fase que los entienda, estos valores de identificador solo se pueden introducir en la fase del sombreador de vértices.

Los sombreadores de vértices siempre se ejecutan en todos los vértices, incluidos los vértices adyacentes en topologías primitivas de entrada con adyacencia. El número de veces que se ha ejecutado el sombreador de vértices se puede consultar desde la CPU mediante la estadística de canalización vsInvocations.

Un sombreador de vértices puede realizar operaciones de muestreo de carga y textura en las que no se requieren derivados del espacio de pantalla (mediante funciones intrínsecas de HLSL: Sample (Objeto de textura HLSL de DirectX), SampleCmpLevelZero (objeto de textura de DirectX HLSL) y SampleGrad (objeto de textura HLSL de DirectX)).