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);

相关文章:

  • 2022-12-23
  • 2021-04-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-04-06
  • 2021-07-20
  • 2021-10-06
  • 2022-12-23
相关资源
相似解决方案