OpenGL 多重纹理
OpenGL中如何使用多重纹理?
参考:OpenGL-实践 纹理
使用glGetUniformLocation获取着色器中采样器索引;
使用glUniformxxx函数绑定采样器;
使用glActiveTexture 激活纹理单元;
使用glBindTexture 绑定纹理;
在OpenGL中使用glGetUniformLocation和glUniformxxx等函数时,要在之前启用对应的着色器程序,即调用glUseProgram。
glUniform1i(glGetUniformLocation(program,"texture1"),0); //绑定纹理单元到glsl采样器glUniform1i(glGetUniformLocation(program,"texture2"),1);glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture1);
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, texture2);
glBindVertexArray(VAO);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);