texcrd - ps
Copia dados de coordenadas de textura do registro do iterador de coordenadas de textura de origem como dados de cor no registro de destino.
Sintaxe
texcrd 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 |
---|---|---|---|---|---|---|---|---|---|
texcrd | x |
Esta instrução interpreta os dados de coordenadas como dados de cor (RGBA).
Nenhuma textura é amostrada por esta instrução. Somente as coordenadas de textura definidas neste estágio de textura são relevantes.
Ao usar texcrd, tenha em mente os detalhes a seguir sobre como os dados são copiados do registro de origem para o registro de destino. O registro de coordenadas de textura de origem (t#) contém dados no intervalo [-D3DCAPS9. MaxTextureRepeat, D3DCAPS9. MaxTextureRepeat], enquanto o registro de destino (r#) pode conter dados somente no intervalo (provavelmente menor) [-D3DCAPS9. PixelShader1xMaxValue, D3DCAPS9. PixelShader1xMaxValue]. Observe que para o sombreador de pixel versão 1_4, D3DCAPS9. PixelShader1xMaxValue deve ser um mínimo de oito. A instrução texcrd, no processo de fixação de dados de origem que está fora do intervalo do registro de destino, provavelmente se comportará de forma diferente em hardwares diferentes. O primeiro hardware de sombreador de pixel versão 1_4 no mercado executará uma fixação especial para valores fora do intervalo. Esse grampo foi projetado para produzir um número que pode caber no registro de destino, mas também para preservar o comportamento de endereçamento de textura para dados fora do intervalo (consulte D3DTEXTUREADDRESS) se os dados fossem usados posteriormente para amostragem de textura. No entanto, um novo hardware de diferentes fabricantes pode não exibir esse comportamento e pode apenas cortar dados para se ajustar ao intervalo de registro de destino. Portanto, o curso de ação mais seguro ao usar o texcrd do sombreador de pixel versão 1_4 é fornecer dados de coordenadas de textura somente para o sombreador de pixel que já está dentro do intervalo [-8,8] para que você não dependa da maneira como o hardware é fixado.
Ao contrário de texcoord_, texcrd não fixa valores entre 0 e 1.
Regras para usar texcrd:
- O mesmo modificador .xyz ou .xyw deve ser aplicado a cada leitura de um registro t(n) individual em uma instrução texcrd ou texld.
- O quarto resultado do canal de texcrd é indefinido/indefinido em todos os casos.
- O terceiro canal é indefinido/indefinido para o caso de xyw_dw.
Exemplos
O conjunto completo de sintaxe permitida para texcrd, levando em conta todas as combinações válidas de modificador/seletor de origem e máscara de gravação de destino, é mostrado abaixo. Observe que a notação .rgba e .xyzw pode ser usada de forma intercambiável.
Copia os três primeiros canais do registro do iterador de coordenadas de textura, t(n), em r(m). O quarto canal de r(m) não é inicializado.
texcrd r(m).rgb, t(n).xyz
// Produces the same result as the previous instruction
texcrd r(m).rgb, t(n)
Coloca primeiro, segundo e quarto componentes de t(n) nos três primeiros canais de r(m). O quarto canal de r(m) não é inicializado.
texcrd r(m).rgb, t(n).xyw
Aqui está um exemplo de divisão projetiva usando o modificador _dw.
Este exemplo copia x/w e y/w de t(n) para os dois primeiros canais de r(m). O terceiro e quarto canais de r(m) não são inicializados. Todos os dados gravados anteriormente no terceiro canal de r(m) serão perdidos. Os dados no quarto canal de r(m) são perdidos devido ao marcador de fase. Para a versão 1_4, o sinalizador D3DTTFF_PROJECTED é ignorado.
texcrd r(m).rg, t(n)_dw.xyw
Tópicos relacionados