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);
posted @ 2018-04-04 00:50  北冥有鱼其名为鲲  阅读(3250)  评论(0编辑  收藏  举报