glsl中texture采样的必需设置

glsl中设置了贴图采样,代码中设置贴图一般需要以下步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);

glTexImage2D(...);

// 设置环绕和过滤设置
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

// 自动生成mipmap
//glGenerateMipmap(GL_TEXTURE_2D);

mipmap环绕过滤设置至少要有一个,或者glTexImage2D()中设置了mipmap。按照经验,OpenGLOpenGL ES 中均需要这样设置