Compartir a través de


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
centroid _centroide x x x x x
Partial_Precision _Pp x x x x x
Saturar _sábado x x x x x

 

Centroide

El modificador centroide es un modificador opcional que fija la interpolación de atributos dentro del intervalo del primitivo cuando un centro de píxeles multimuestra no está cubierto por el primitivo. 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 colores 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 que se muestren centroide sean precisos.

Precisión parcial

El modificador de instrucción de precisión parcial (_pp) indica áreas donde se acepta la precisión parcial, siempre que la implementación subyacente lo 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 texturas. 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 abrazaderas) 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 - psy cualquier instrucción de tex*.

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

Ejemplo:

dp3_sat r0, v0, c1

instrucciones del sombreador de píxeles de