texkill - ps

Cancela la representación del píxel actual si alguno de los tres primeros componentes (UVW) de las coordenadas de textura es menor que cero.

Sintaxis

texkill dst

 

where

  • dst es un registro de destino

Observaciones

Versiones del sombreador de píxeles 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
texkill x x x x x x x x x

 

Esta instrucción corresponde a la función clip de HLSL.

texkill no muestra ninguna textura. Funciona en los tres primeros componentes de las coordenadas de textura dadas por el número de registro de destino. Para ps_1_4, texkill funciona en los datos de los tres primeros componentes del registro de destino.

Puede usar esta instrucción para implementar planos de clip arbitrarios en el rasterizador.

Al usar sombreadores de vértices, la aplicación es responsable de aplicar la transformación de perspectiva. Esto puede causar problemas para los planos de recorte arbitrarios porque si contiene factores de escala anisomórficos, los planos de clip también deben transformarse. Por lo tanto, es mejor proporcionar una posición de vértice no proyectada para usarla en el clipper arbitrario, que es el conjunto de coordenadas de textura identificado por el operador texkill.

Esta instrucción se usa de la siguiente manera:

texkill tn // El enmascaramiento de píxeles se logra de la siguiente manera: si ( los componentes x,y,z de TextureCoordinates(stage n)UVWQ< 0 ) cancelar representación de píxeles

Para el sombreador de píxeles 1_1, 1_2 y 1_3, texkill funciona en el conjunto de coordenadas de textura proporcionado por el número de registro de destino. Sin embargo, en la versión 1_4, texkill opera en los datos contenidos en el registro de coordenadas de textura (tn) o en el registro temporal (rn) que se ha especificado como destino.

Cuando se habilita el muestreo múltiple, no se logrará ningún efecto de suavizado de suavizado en los bordes del polígono debido al muestreo múltiple a lo largo de ningún borde generado por texkill. El sombreador de píxeles se ejecuta una vez por píxel.

Este ejemplo solo tiene propósitos ilustrativos.

En este ejemplo se enmascaran los píxeles que tienen coordenadas de textura negativas. Los colores de píxeles se interpolan a partir de los colores de vértice proporcionados en los datos de vértice.

ps_1_1       // Version instruction
texkill t0   // Mask out pixel using texture coordinates from stage 0
mov r0, v0   // Move the diffuse color in v0 to r0

// The rendered output from the pixel shader is shown below

Las coordenadas de textura van de -0,5 a 0,5 en u y de 0,0 a 1,0 en v. Esta instrucción hace que los valores u negativos se enmascaran. En la primera ilustración siguiente se muestra el color del vértice aplicado al cuadrante sin la instrucción texkill aplicada. En la segunda ilustración siguiente se muestra el resultado de la instrucción texkill. Los colores de píxeles de las coordenadas de textura inferiores a 0 (donde x va de -0,5 a 0,0) se enmascaran. El color de fondo (blanco) se usa donde se enmascara el color del píxel.

ilustración de la salida con el color de vértice aplicado al cuadráculo sin lailustración de instrucción texkill de la salida con la instrucción texkill aplicada

Los datos de coordenadas de textura se declaran en la declaración de datos de vértices de este ejemplo.

   
struct CUSTOMVERTEX
{
    FLOAT x, y, z;
    DWORD color;
    FLOAT tu1, tv1;
};

#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1|D3DTEXCOORD2(0))

static CUSTOMVERTEX g_Vertices[]=
{
    //  x      y     z    color         u1,    v1  
    { -1.0f, -1.0f, 0.0f, 0xffff0000, -0.5f,  1.0f, },
    {  1.0f, -1.0f, 0.0f, 0xff00ff00,  0.5f,  1.0f, },
    {  1.0f,  1.0f, 0.0f, 0xff0000ff,  0.5f,  0.0f, },
    { -1.0f,  1.0f, 0.0f, 0xffffffff, -0.5f,  0.0f, },

};

Instrucciones del sombreador de píxeles