texkill - ps

Annulla il rendering del pixel corrente se uno dei primi tre componenti (UVW) delle coordinate della trama è minore di zero.

Sintassi

texkill dst

 

dove

  • dst è un registro di destinazione

Commenti

Versioni del pixel shader 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

 

Questa istruzione corrisponde alla funzione clip di HLSL.

texkill non campiona alcuna trama. Opera sui primi tre componenti delle coordinate della trama date dal numero di registro di destinazione. Per ps_1_4, texkill opera sui dati nei primi tre componenti del registro di destinazione.

È possibile usare questa istruzione per implementare piani clip arbitrari nel rasterizzatore.

Quando si usano vertex shader, l'applicazione è responsabile dell'applicazione di applicare la trasformazione prospettica. Ciò può causare problemi per i piani di ritaglio arbitrari perché se contiene fattori di scala anisomorfici, è necessario trasformare anche i piani di ritaglio. Pertanto, è consigliabile fornire una posizione di vertice non proiettata da usare nel clipper arbitrario, ovvero il set di coordinate della trama identificato dall'operatore texkill.

Questa istruzione viene usata come segue:

texkill tn // La maschera di pixel viene eseguita come segue: se ( i componenti x,y,z di TextureCoordinates(stage n)UVWQ< 0 ) annullare il rendering pixel

Per pixel shader 1_1, 1_2 e 1_3, texkill opera sulla coordinata della trama specificata dal numero di registro di destinazione. Nella versione 1_4, tuttavia, texkill opera sui dati contenuti nel Registro coordinate trama (tn) o nel registro temporaneo (rn) specificato come destinazione.

Quando il multicampionamento è abilitato, qualsiasi effetto antialiasing ottenuto sui bordi del poligono a causa del multicampionamento non verrà raggiunto lungo alcun bordo generato da texkill. Il pixel shader viene eseguito una volta per pixel.

Questo esempio viene utilizzato solo a scopo illustrativo.

In questo esempio vengono mascherati i pixel con coordinate di trama negative. I colori pixel vengono interpolati dai colori dei vertici forniti nei dati dei vertici.

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

Le coordinate della trama variano da -0,5 a 0,5 in u e da 0,0 a 1,0 in v. Questa istruzione fa sì che i valori u negativi vengano mascherati. La prima illustrazione seguente mostra il colore del vertice applicato al quad senza l'istruzione texkill applicata. La seconda illustrazione seguente mostra il risultato dell'istruzione texkill. I colori pixel delle coordinate della trama inferiori a 0 (dove x va da -0,5 a 0,0) vengono mascherati. Il colore di sfondo (bianco) viene usato dove viene mascherato il colore del pixel.

illustrazione dell'output con il colore del vertice applicato al quad senza l'illustrazione dell'istruzione texkill dell'output con l'istruzione texkill applicata

I dati delle coordinate della trama vengono dichiarati nella dichiarazione dei dati dei vertici in questo esempio.

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

};

Istruzioni per pixel shader