texm3x2depth - ps
Calcule o valor de profundidade a ser usado em testes detalhados para este pixel.
Sintaxe
texm3x2depth dst, src |
---|
onde
- dst é o registro de destino.
- src é um registro de origem.
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 |
---|---|---|---|---|---|---|---|---|---|
texm3x2depth | x |
Esta instrução deve ser usada com a instrução texm3x2pad – ps .
Ao usar essas duas instruções, os registros de textura devem usar a sequência a seguir.
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
O cálculo de profundidade é feito depois de usar uma operação de produto de ponto para localizar z e w. Veja mais detalhes sobre como o cálculo de profundidade é realizado.
A instrução texm3x2pad calcula z.
z = TextureCoordinates(stage m)UVW * t(n)RGB
A instrução texm3x2depth calcula w.
w = TextureCoordinates(stage m+1)UVW * t(n)RGB
Calcule a profundidade e armazene o resultado em t(m+1).
if (w == 0)
t(m+1) = 1.0
else
t(m+1) = z/w
A profundidade calculada é marcada para ser usada no teste de profundidade do pixel, substituindo o valor de teste de profundidade existente para o pixel.
Certifique-se de fixar z/w para estar no intervalo de (0-1). Se z/w estiver fora desse intervalo, o resultado armazenado no buffer de profundidade será indefinido.
Depois de executar texm3x2depth, register t(m+1) não está mais disponível para uso no sombreador.
Quando o multisampling, usar essa instrução elimina a maior parte do benefício do buffer de profundidade de resolução mais alta. Como o sombreador de pixel é executado uma vez por pixel, a saída de valor de profundidade única por texm3x2depth ou texdepth – ps será usada para cada um dos testes de comparação de profundidade de subpixel.
Tópicos relacionados