El estado GL para los enlaces es un nombre de textura por objetivo (es decir, 1D/2D/3D/cubo). Por lo tanto, al llamar a
glBindTexture(GL_TEXTURE_2D, my2dTex)
glBindTexture(GL_TEXTURE_1D, my1dTex)
, el GL recordará ambas configuraciones.
Ahora, la respuesta de que un GL utilizará depende de si tiene un sombreador activado.
Si hay un sombreador activado, el GL usará lo que sea que el sombreador indique usar. (basado en sampler1d/sampler2d ...).
Si no hay sombreado activado, entonces primero depende de qué glEnable se haya realizado.
glEnable(GL_TEXTURE_2D)
glEnable(GL_TEXTURE_1D)
Si tanto están activados, hay una regla de prioridad estática en la especificación (3.8.15 la aplicación de texturas en la especificación GL 1.5).
Cube > 3D > 2D > 1D
Así, en su caso, si se habilitan tanto sus objetivos textura, se utilizará el 2D.
Como nota al margen, observe cómo un shader no le importa si o no el objetivo de la textura es Habilitado ...
Editar para añadir:
Y para las personas que realmente quieren conseguir a los detalles arenosos, siempre tienen una textura vinculada a cada objetivo * de cada unidad. El nombre 0 (el predeterminado para el estado de enlace) corresponde a una serie de objetos de textura, uno por objetivo. glBindTexture(GL_TEXTURE_2D, 0)
y glBindTexture(GL_TEXTURE_1D, 0)
ambos enlazan una textura, pero no la misma ...
Esto es histórico, especificado para coincidir con el comportamiento de GL 1.0, donde los objetos de textura aún no existían. Sin embargo, no estoy seguro de lo que la obsolescencia en GL3.0 hizo con esto.
Lo siento, piensas mal. Bahbar proporciona la respuesta correcta. – Thomas
Bueno, hoy aprendí algo nuevo. ¡Eso me enseñará a responder cuando no tengo mi libro de OpenGL a mano! –