Pergunta

Ao executar um pixel shader sob Direct3D, fazer os limites de coordenadas de textura impostas pela MaxTextureRepeat só se tornam um problema durante chamadas para funções de pesquisa textura como Tex2D (), ou eles entram em jogo em qualquer momento as coordenadas de textura são acessados ??dentro do shader?

Eu gostaria de saber se é possível para evitar a limitação MaxTextureRepeat chamando algo como frac () sobre as coordenadas de textura antes de passá-los para a função de pesquisa de textura.

Foi útil?

Solução

coordenadas de textura são a precisão interpolator nativa. Em sombreador de pixel 2,0 hardware capaz, isto é, pelo menos, 24 bits de ponto flutuantes (ou talvez 32 bits, não certeza). Internamente, os cálculos em pixel shader deve ser, pelo menos, 24 bits de ponto flutuantes. A maioria das GPUs modernas executado em 32 bits ponto flutuante de precisão.

O MaxTextureRepeat é a capacidade do hardware amostragem de textura.

Então, sim, se você não correr em flutuante limitações de precisão ponto, em seguida, limitando o alcance antes da amostragem é uma maneira de evitar os limites textura de repetição.

No entanto, quando frac voltas de 0 a 1 você terá grandes gradientes, por isso nesses lugares a GPU vai querer usar nível muito baixo resolução MIP. Isto pode não ser um problema dependendo da sua situação, é claro; mas é um ponto de potencial problema (s).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top