Compartilhar via


texkill - ps

Cancela a renderização do pixel atual se qualquer um dos três primeiros componentes (UVW) das coordenadas de textura for menor que zero.

Sintaxe

texkill dst

 

onde

  • dst é um registro de destino

Comentários

Versões do sombreador de pixel 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 instrução corresponde à função de clipe do HLSL.

texkill não amostra nenhuma textura. Ele opera nos três primeiros componentes das coordenadas de textura fornecidas pelo número de registro de destino. Para ps_1_4, o texkill opera nos dados nos três primeiros componentes do registro de destino.

Você pode usar esta instrução para implementar planos de recorte arbitrários no rasterizador.

Ao usar sombreadores de vértice, o aplicativo é responsável por aplicar a transformação de perspectiva. Isso pode causar problemas para os planos de recorte arbitrários porque, se contiver fatores de escala anisomórficos, os planos de recorte também precisarão ser transformados. Portanto, é melhor fornecer uma posição de vértice não reproduzida para usar no cortador arbitrário, que é o conjunto de coordenadas de textura identificado pelo operador texkill.

Esta instrução é usada da seguinte maneira:

texkill tn // O mascaramento de pixel é realizado da seguinte maneira: se ( os componentes x,y,z de TextureCoordinates(estágio n)UVWQ< 0 ) cancelar renderização de pixel

Para sombreador de pixel 1_1, 1_2 e 1_3, texkill opera no conjunto de coordenadas de textura dado pelo número de registro de destino. Na versão 1_4, no entanto, texkill opera nos dados contidos no registro de coordenadas de textura (tn) ou no registro temporário (rn) que foi especificado como o destino.

Quando o multisampling está habilitado, qualquer efeito de suavização obtido nas bordas do polígono devido a várias amostras não será alcançado ao longo de nenhuma borda que tenha sido gerada pelo texkill. O sombreador de pixel é executado uma vez por pixel.

Este exemplo é apenas uma ilustração.

Este exemplo mascara pixels que têm coordenadas de textura negativas. As cores de pixel são interpoladas de cores de vértice fornecidas nos dados 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

As coordenadas de textura variam de -0,5 a 0,5 em u e 0,0 a 1,0 em v. Essa instrução faz com que os valores negativos u fiquem mascarados. A primeira ilustração abaixo mostra a cor do vértice aplicada ao quad sem a instrução texkill aplicada. A segunda ilustração abaixo mostra o resultado da instrução texkill. As cores de pixel das coordenadas de textura abaixo de 0 (em que x vai de -0,5 a 0,0) são mascaradas. A cor da tela de fundo (branca) é usada onde a cor do pixel é mascarada.

ilustração da saída com a cor do vértice aplicada ao quad sem a ilustração de instrução texkill da saída com a instrução texkill aplicada

Os dados de coordenadas de textura são declarados na declaração de dados de vértice neste exemplo.

   
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, },

};

Instruções de sombreador de pixel