呼叫双方时
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
Run Code Online (Sandbox Code Playgroud)
和
glGenerateMipmap(GL_TEXTURE_2D);
Run Code Online (Sandbox Code Playgroud)
在OpenGL的纹理加载过程中,会发生什么?什么占主导地位,或者我能想象背景中发生了什么?
如果您想使用mipmapping ,则纹理缩小函数必须是GL_NEAREST_MIPMAP_NEAREST
、GL_LINEAR_MIPMAP_NEAREST
或GL_NEAREST_MIPMAP_LINEAR
:(
请参阅GL_LINEAR_MIPMAP_LINEAR
)glTexParameter
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glGenerateMipmap(GL_TEXTURE_2D);
Run Code Online (Sandbox Code Playgroud)
请注意,glGenerateMipmap
无论如何都会生成 mipmap。如果纹理缩小为GL_NEAREST
或GL_LINEAR
,则纹理查找时将“忽略”mipmap。
如果缩小函数为GL_NEAREST_MIPMAP_NEAREST
、GL_LINEAR_MIPMAP_NEAREST
、GL_NEAREST_MIPMAP_LINEAR
或GL_LINEAR_MIPMAP_LINEAR
且未生成 mipmap,则纹理不是 mipmap 完整的,并且纹理访问将在着色器程序中返回 (0.0, 0.0, 0.0, 1.0)。