Cuando se aplican múltiples texturas a una malla, como para el mapeo de protuberancias, generalmente se unen las texturas a las primeras unidades de textura fija, por ejemplo: difusa = unidad 0, protuberancia = unidad 1, especular = unidad 2, luego se siguen reutilizando para cada Malla diferente con diferentes texturas. Pero siempre me he preguntado por qué glActiveTexture
admite tantas unidades de textura (en el enlace anterior, dice al menos 80).
Entonces se me ocurrió que una forma posible de administrar texturas es unir texturas distintas a cada unidad disponible y dejarlas habilitadas, simplemente actualizando el índice de muestra uniforme. Eso debería mejorar el rendimiento de representación al reducir el número de interruptores de texturas. Si tiene menos texturas que las unidades máximas de textura, nunca tendrá que desvincular una textura.
¿Es esta práctica estándar en aplicaciones OpenGL en tiempo real (creo que esto también se aplica a D3D)? ¿Y hay implicaciones de rendimiento no obvias al adoptar este enfoque? ¿Sobrecarga de memoria quizás?