Ao aplicar várias texturas a uma malha, como no mapeamento de bump, costumo vincular as texturas às primeiras unidades fixas de textura, por exemplo: difusa = unidade 0, bump = unidade 1, especular = unidade 2, e continuo reutilizando essas para cada malha diferente com diferentes texturas. Mas sempre me perguntei por que glActiveTexturesuporta tantas unidades de textura (no link anterior, diz pelo menos 80).
Portanto, ocorreu-me que uma maneira possível de gerenciar texturas é vincular texturas distintas a cada unidade disponível e deixá-las ativadas, apenas atualizando o índice do amostrador uniforme. Isso deve melhorar a renderização, reduzindo o número de opções de texturas. Se você tiver menos texturas do que as unidades máximas de textura, nunca precisará desvincular uma textura.
Essa é uma prática padrão em aplicativos OpenGL em tempo real (acredito que isso também se aplica ao D3D)? E há implicações não óbvias no desempenho de adotar essa abordagem? Sobrecarga de memória, talvez?