Я пытаюсь отправить две текстуры фрагментному шейдеру, но, похоже, это не работает.Только одна текстура может быть доступна из сэмплера в шейдере.
Вот что я делаю в своем коде
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, fbo_texture);
glUniform1i(glGetUniformLocation(p,"fbo_texture"), 0);
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, tex_back);
glUniform1i(glGetUniformLocation(p,"back"), 1);
render stuff
Однако, если я добавлю glActiveTexture(GL_TEXTURE0);
после последней униформы,оно работает.Также, если я укажу GL_TEXTURE1
, то GL_TEXTURE0
, в таком порядке это тоже хорошо.Чего мне не хватает?
Редактировать *
glActiveTexture(GL_TEXTURE2);
glBindTexture(GL_TEXTURE_2D, fbo_texture);
glUniform1i(glGetUniformLocation(p,"fbo_texture"), 2);
glActiveTexture(GL_TEXTURE3);
glBindTexture(GL_TEXTURE_2D, tex_back);
glUniform1i(glGetUniformLocation(p,"back"), 3);
Работает ... Проблема с GL_TEXTURE0 явно