前言
纹理如果比较小, 填充比较大的图如何解决?
一、纹理环绕方式
环绕方式 | 描述 | |
---|---|---|
GL_REPEAT | ![]() | 默认行为,重复纹理图案 |
GL_MIRRORED_REPEAT | ![]() | 重复图案,但是每次都镜像 |
GL_CLAMP_TO_EDGE | ![]() | 边缘拉伸 |
GL_CLAMP_TO_BORDER | ![]() | 添加边界 |
二、 设置纹理参数
glTexParameteri
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_MIRRORED_REPEAT);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_MIRRORED_REPEAT);
如果设置border选项,还需要指定颜色(glTexParameterfv) v=数组
float borderColor[] = {1.0f,1.0f,0.0f,1.0f};
glTexParameterfv(GL_TEXTURE_2D,GL_TEXTURE_BORDER_COLOR,borderColor);
三、 绘制代码
program.bind();
program.setUniformValue("ourTexture1",0);
program.setUniformValue("ourTexture2",1);
program.setUniformValue("ourTexture3",2);
glBindVertexArray(VAO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,EBO);
glTexParameteri(GL_TEXTUR_2D,GL_TEXTURE_WRAP_S,GL_MIRRORED_REPEAT);
glTexParameteri(GL_TEXTUR_2D,GL_TEXTURE_WRAP_T,GL_MIRRORED_REPEAT);
glDrawElements(GL_TRIANGLES,6,GL_UNSIGNED_INT,0);