En OpenGL siempre he entendido que glEnable(GL_TEXTURE_1D)
, glEnable(GL_TEXTURE_2D)
y/o glEnable(GL_TEXTURE_3D)
(y correspondiente glDisable
) es un parámetro de la unidad por la textura.Debería glEnable (GL_TEXTURE_2D) ser aplicado por unidad de textura
Recientemente traté de confirmar esto pero no he encontrado ninguna documentación clara que confirme de cualquier manera con respecto a esta pregunta.
pocas palabras y en el código, debería hacer esta
glActiveTexture(GL_TEXTURE0);
glEnable(GL_TEXTURE_2D);
... bind etc ...
glActiveTexture(GL_TEXTURE1);
glEnable(GL_TEXTURE_2D);
... bind etc ...
o esta
glEnable(GL_TEXTURE_2D);
glActiveTexture(GL_TEXTURE0);
... bind etc ...
glActiveTexture(GL_TEXTURE1);
.... bind etc ...
Tenía la esperanza de encontrar un poco de claridad.
Bueno, de hecho, no estará en las últimas revisiones principales porque la función fija fue desaprobada y luego eliminada, y la Habilitación está controlando el estado de la función fija. No tiene ningún efecto sobre los sombreadores. – Bahbar
¡Eso es bueno saber! – Montdidier
@Bahbar: ¿Quiere decir que los sombreadores GLSL con sus anotaciones pueden controlar el estado de las unidades de textura y los muestreadores y, por lo tanto, no es necesario un glEnable explícito (GL_TEXTURE2D) por ejemplo? – Montdidier