Pregunta

Al ejecutar un sombreador de píxeles en Direct3D, los límites en las coordenadas de textura impuestos por MaxTextureRepeat solo se convierten en un problema durante las llamadas a funciones de búsqueda de textura como Tex2D (), o entran en juego cada vez que se accede a las coordenadas de textura dentro del sombreador?

Deseo saber si es posible evitar la limitación MaxTextureRepeat llamando a algo como frac () en las coordenadas de textura antes de pasarlas a la función de búsqueda de textura.

¿Fue útil?

Solución

Las coordenadas de textura están en la precisión del interpolador nativo. En el hardware compatible con pixel shader 2.0, esto es al menos 24 bits de coma flotante (o quizás 32 bits, no estoy seguro). Internamente, los cálculos en pixel shader deben ser de al menos 24 bits de coma flotante. La mayoría de las GPU modernas funcionan con precisión de coma flotante de 32 bits.

MaxTextureRepeat es la capacidad del hardware de muestreo de textura.

Entonces, sí, si no se encuentra con limitaciones de precisión de coma flotante, entonces limitar el rango antes del muestreo es una forma de evitar los límites de repetición de textura.

Sin embargo, cuando frac pasa de 0 a 1, obtendrá grandes gradientes, por lo que en esos lugares la GPU querrá usar un nivel de resolución muy bajo. Esto puede no ser un problema dependiendo de su situación, por supuesto; pero es un punto de problemas potenciales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top