glActiveTexture
не активирует текстурные юниты.Он просто выбирает, какой текстурный модуль вы сейчас модифицируете (да, управление состоянием объекта OpenGL ужасно).Вы активируете текстуры с glEnable(<texture-target>)
и glDisable(<texture-target>)
.В вашем случае, цель будет GL_TEXTURE_2D
.
Итак, чтобы ответить на ваш вопрос: выберите текстурный блок i
с помощью glActiveTexture(GL_TEXTURE0+i)
, а затем отключите его с помощью glDisable(GL_TEXTURE_2D)
.
Обратите внимание, что все это избыточно с шейдерами - вы просто не можете получить доступ к значениям там.