Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los valores generados por el sistema se generan mediante la fase del ensamblador de entrada (IA) de
Por ejemplo, en la etapa de VS se puede buscar el identificador de instancia para obtener datos adicionales por vértice para el sombreador o para realizar otras operaciones; en las etapas de GS y PS se puede usar el identificador de primitiva para obtener datos por primitiva de la misma manera.
ID del vértice
Cada fase del sombreador usa un identificador de vértice para identificar cada vértice. Es un entero de 32 bits sin signo cuyo valor predeterminado es 0. Se asigna a un vértice cuando la fase del ensamblador de entrada (IA) procesa el primitivo. Adjuntar la semántica de ID de vértice a la declaración de entrada del sombreador y así informar a la etapa IA para generar un identificador por vértice.
El IA agregará un identificador de vértice a cada vértice para su uso por fases del sombreador. Para cada llamada de dibujo, el identificador de vértice se incrementa en 1. Durante las llamadas de dibujo indexadas, el recuento se restablece al valor inicial. Si el identificador de vértice se desborda (supera 2³² – 1), vuelve a 0.
Para todos los tipos primitivos, los vértices tienen un identificador de vértice asociado a ellos (independientemente de la adyacencia).
PrimitiveID
Cada fase del sombreador usa un identificador primitivo para identificar cada primitivo. Es un entero de 32 bits sin signo cuyo valor predeterminado es 0. Se asigna a un primitivo cuando el ensamblador de entrada (IA) procesa el primitivo. Para informar a la fase de IA para generar un identificador primitivo, adjunte la semántica primitive-ID a la declaración de entrada del sombreador.
La fase IA agregará un identificador primitivo a cada primitivo para su uso por parte de la fase sombreador de geometría (GS) o la fase del sombreador de vértices (VS), cualquiera que sea la primera fase activa después de la fase IA. Para cada llamada a draw indizada, el identificador primitivo se incrementa en 1, pero el identificador primitivo se restablece a 0 cada vez que se inicia una nueva instancia. Todas las demás llamadas a draw no cambian el valor del identificador de instancia. Si el identificador de instancia se desborda (supera los 2³² – 1), vuelve a 0.
La etapa del sombreador de píxeles (PS) no tiene una entrada separada para un identificador de primitivo; sin embargo, cualquier entrada del sombreador de píxeles que especifique un identificador de primitivo utiliza una interpolación constante.
No se admite la generación automática de un identificador primitivo para primitivos adyacentes. Para los tipos primitivos con adyacencia, como una franja de triángulos con adyacencia, solo se mantiene un identificador primitivo para los primitivos interiores (los primitivos no adyacentes), al igual que el conjunto de primitivos en una franja de triángulos sin adyacencia.
ID de instancia
Cada fase del sombreador usa un identificador de instancia para identificar la instancia de la geometría que se está procesando actualmente. Es un entero de 32 bits sin signo cuyo valor predeterminado es 0.
La fase del ensamblador de entrada (IA) de
Ejemplo de
La ilustración siguiente muestra cómo los valores del sistema se adjuntan a una franja de triángulos instanciada en la fase del ensamblador de entrada (IA) de .
Estas tablas muestran los valores del sistema generados para ambas instancias de la misma franja de triángulos. La primera instancia (instancia U) se muestra en azul, la segunda instancia (instancia V) se muestra en verde. Las líneas continuas conectan los vértices en las primitivas, las líneas discontinuas conectan los vértices adyacentes.
En las tablas siguientes se muestran los valores generados por el sistema para la instancia U.
Datos de vértices | C,U | D,U | E,U | F,U | G,U | H,U | I,U | J,U | K,U | L,U |
---|---|---|---|---|---|---|---|---|---|---|
VertexID | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
IdentificadorDeInstancia | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
La instancia de franja de triángulos U tiene 3 primitivas de triángulos, con los siguientes valores generados automáticamente por el sistema.
Valor 1 | Valor 2 | Valor 3 | |
---|---|---|---|
primitiveID | 0 | 1 | 2 |
IdentificadorDeInstancia | 0 | 0 | 0 |
En las tablas siguientes se muestran los valores generados por el sistema para la instancia V.
Datos de vértices | C,V | D,V | E,V | F,V | G,V | H,V | I,V | J,V | K,V | L, V |
---|---|---|---|---|---|---|---|---|---|---|
VertexID | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
IdentificadorDeInstancia | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
La instancia de franja de triángulos V tiene tres primitivos de triángulo, con los siguientes valores generados por el sistema:
Valor 1 | Valor 2 | Valor 3 | |
---|---|---|---|
primitiveID | 0 | 1 | 2 |
IdentificadorDeInstancia | 1 | 1 | 1 |
La fase del ensamblador de entrada (IA) de
temas relacionados con