Modificadores para ps_2_0 y versiones posteriores

Los modificadores de instrucción afectan al resultado de la instrucción antes de escribirla en el registro de destino.

Esta sección contiene información de referencia para los modificadores de instrucción implementados por la versión 2_0 del sombreador de píxeles y versiones posteriores.

Nombre Sintaxis 2_0 2_x 2_sw 3_0 3_sw
Centroide _Centroide x x x x x
Partial_Precision _Pp x x x x x
Saturate _Sentado x x x x x

 

Centroide

El modificador centroide es un modificador opcional que sujeta la interpolación de atributos dentro del intervalo del primitivo cuando el primitivo no cubre un centro de píxeles de varias muestras. Esto se puede ver en Muestreo centroide.

Puede aplicar el modificador centroid a una instrucción de ensamblado como se muestra aquí:

dcl_texcoord0_centroid v0

También puede aplicar el modificador centroid a una semántica, como se muestra aquí:

float4 TexturePointCentroidPS( float4 TexCoord : TEXCOORD0_centroid ) : COLOR0
{
    return tex2D( PointSampler, TexCoord );
}

Además, cualquier registro de color de entrada (v#) declarado con una semántica de color se aplicará automáticamente. No se garantiza que los degradados calculados a partir de atributos con muestreo centroide sean precisos.

Precisión parcial

El modificador de instrucción de precisión parcial (_pp) indica áreas en las que la precisión parcial es aceptable, siempre que la implementación subyacente la admita. Las implementaciones siempre son libres de omitir el modificador y realizar las operaciones afectadas con precisión completa.

El modificador _pp puede producirse en dos contextos:

  • En una declaración de coordenadas de textura para permitir pasar coordenadas de textura al sombreador de píxeles en forma de precisión parcial. Esto permite, por ejemplo, el uso de coordenadas de textura para retransmitir datos de color al sombreador de píxeles, lo que puede ser más rápido con precisión parcial que con precisión completa en algunas implementaciones. En ausencia de este modificador, las coordenadas de textura deben pasarse con precisión completa.
  • En cualquier instrucción, incluidas las instrucciones de carga de textura. Esto indica que la implementación puede ejecutar la instrucción con precisión parcial y almacenar un resultado de precisión parcial. En ausencia de un modificador explícito, la instrucción debe realizarse con precisión completa (independientemente de la precisión de entrada).

Ejemplos:

dcl_texcoord0_pp t1
cmp_pp r0, r1, r2, r3

Saturar

El modificador de instrucción satura (_sat) satura (o abraza) el resultado de la instrucción en el intervalo [0, 1] antes de escribir en el registro de destino.

El modificador de instrucción _sat se puede usar con cualquier instrucción excepto frc - ps, sincos - ps y cualquier instrucción tex*.

Para ps_2_0, ps_2_x y ps_2_sw, el modificador de instrucción _sat no se puede usar con instrucciones escritas en ningún registro de salida (Registro de color de salida o Registro de profundidad de salida). Esta restricción no se aplica a ps_3_0 y versiones posteriores.

Ejemplo:

dp3_sat r0, v0, c1

Instrucciones del sombreador de píxeles