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
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
vFace Face_Register 1 R 1 Sin límite 1 No None
vPos Position_Register 1 R 1 Sin límite 4 No None
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

 

Registros