texm3x2depth - ps
Calcolare il valore di profondità da usare per questo pixel.
Sintassi
texm3x2depth dst, src |
---|
dove
- dst è il registro di destinazione.
- src è un registro di origine.
Commenti
Versioni del pixel shader | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
texm3x2depth | x |
Questa istruzione deve essere usata con l'istruzione texm3x2pad - ps .
Quando si usano queste due istruzioni, i registri delle trame devono usare la sequenza seguente.
tex t(n) // Define tn as a standard 3-vector.(tn must be
// defined in some way before it is used
texm3x2pad t(m), t(n) // Where m > n
// Calculate z value
texm3x2depth t(m+1), t(n) // Calculate w value; use both z and w to
// find depth
Il calcolo della profondità viene eseguito dopo aver usato un'operazione punto prodotto per trovare z e w. Ecco altri dettagli su come viene eseguito il calcolo della profondità.
L'istruzione texm3x2pad calcola z.
z = TextureCoordinates(stage m)UVW * t(n)RGB
L'istruzione texm3x2depth calcola w.
w = TextureCoordinates(stage m+1)UVW * t(n)RGB
Calcolare la profondità e archiviare il risultato in t(m+1).
if (w == 0)
t(m+1) = 1.0
else
t(m+1) = z/w
La profondità calcolata viene contrassegnata per essere usata nel test di profondità per il pixel, sostituendo il valore del test di profondità esistente per il pixel.
Assicurarsi di bloccare z/w per essere compreso nell'intervallo di (0-1). Se z/w non è compreso in questo intervallo, il risultato archiviato nel buffer di profondità non sarà definito.
Dopo l'esecuzione di texm3x2depth, register t(m+1) non è più disponibile per l'uso nello shader.
Quando si esegue il multicampionamento, l'uso di questa istruzione elimina la maggior parte dei vantaggi del buffer di profondità di risoluzione superiore. Poiché il pixel shader viene eseguito una volta per pixel, il valore di profondità singolo restituito da texm3x2depth o texdepth - ps verrà usato per ogni test di confronto della profondità del subpixel.
Argomenti correlati