registros de ps_3_0
Los sombreadores de píxeles dependen de los registros para obtener datos de vértices, para generar datos de píxeles, almacenar resultados temporales durante los cálculos e identificar las fases de muestreo de texturas. Hay varios tipos de registros, cada uno con una funcionalidad única. Esta sección contiene información de referencia para los registros de entrada y salida implementados por la versión 3_0 del sombreador de píxeles.
Nuevos registros
Registro de entrada
Los registros de entrada (v#) ahora están totalmente flotantes y los registros de coordenadas de textura(t#) se han consolidado en él. El dcl_semantics (sm3 - ps asm) en la parte superior del sombreador se usa para describir lo que se contiene en un Input_Register determinado. Se introduce una semántica para los tipos de píxeles (análoga al lado del vértice) para este modelo. No se realiza ninguna fijación cuando los registros de entrada se definen como colores (como las coordenadas de textura). La evaluación de los registros definidos como color difiere de las coordenadas de textura cuando se realiza un muestreo múltiple.
Registro de caras
El registro facial (vFace) es nuevo para este modelo. Se trata de un registro escalar de punto flotante que finalmente contendrá el área primitiva. Sin embargo, en ps_3_0, solo el signo de este registro es válido. Por lo tanto, si el valor es menor que cero (el bit de signo se establece negativo), el primitivo es la cara posterior (el área es negativa, en sentido contrario a las agujas del reloj). Por lo tanto, en ps_3_0 solo tiene sentido comparar este registro con 0 (> 0 o < 0). Dentro del sombreador de píxeles, la aplicación puede tomar una decisión sobre la técnica de iluminación que se va a usar. La iluminación de dos lados se puede lograr de esta manera. Este registro requiere una declaración, por lo que el uso no declarado se marcará como un error. En el caso de las líneas y los primitivos de punto, este registro no está definido. El registro facial solo se puede usar como condición con las siguientes instrucciones: setp_comp - ps, if_comp - ps o break_comp - ps.
Registro del contador de bucles
El registro de contadores de bucles (aL) es nuevo para este modelo. Se incrementa automáticamente en cada ejecución del bucle - ps/endloop - ps block. Se puede usar en el bloque para el direccionamiento relativo si es necesario. No es válido usar el registro de contador de bucles fuera del bucle.
Registro de posición
Position Register (vPos) es nuevo para este modelo. Contiene los píxeles actuales (x, y) en los canales correspondientes. Los canales (z, w) no están definidos. Este registro requiere una declaración, por lo que el uso no declarado se marcará como un error. Cuando se declara, este registro debe tener exactamente una de las siguientes máscaras: .x, .y, .xy.
Tipos de registro de entrada
Registrarse | Nombre | Count | L/E | # Puertos de lectura | # Lecturas/inst | Dimensión | RelAddr | Valores predeterminados | Requiere DCL |
---|---|---|---|---|---|---|---|---|---|
V # | Registro de entrada | 10 | R | 1 | Sin límite | 4 | aL | None | Sí |
R # | Registro temporal | 32 | L/E | 3 | Sin límite | 4 | No | Ninguno | No |
c# | Registro flotante constante | 224 | R | 1 | Sin límite | 4 | No | 0000 | No |
i # | Registro entero constante | 16 | R | 1 | 1 | 4 | No | 0000 | No |
B # | Registro booleano constante | 16 | R | 1 | 1 | 1 | No | FALSE | No |
p0 | Registro de predicados | 1 | R | 1 | 1 | 1 | No | Ninguno | No |
s # | Sampler (Direct3D 9 asm-ps) | 16 | R | 1 | 1 | 4 | No | Consulte la nota 1 | Sí |
vFace | Face_Register | 1 | R | 1 | Sin límite | 1 | No | None | Sí |
vPos | Position_Register | 1 | R | 1 | Sin límite | 4 | No | None | Sí |
aL | Loop_Counter_Register | 1 | R | 1 | Sin límite | 1 | N/D | Ninguno | No |
Notas:
- Existen valores predeterminados para las búsquedas de sampler, pero los valores dependen del formato de textura.
El número de puertos de lectura es el número de registros diferentes (para cada tipo de registro) que se pueden leer en una sola instrucción.
Tipos de registro de salida
Registrarse | Nombre | Count | L/E | Dimensión | RelAddr | Valores predeterminados | Requiere DCL |
---|---|---|---|---|---|---|---|
Oc # | Registro de colores de salida | Consulta Texturas de varios elementos (Direct3D 9) | W | 4 | No | Ninguno | No |
oDepth | Registro de profundidad de salida | 1 | W | 1 | No | Ninguno | No |
Temas relacionados