OpenGL过滤参数和mipmap
OpenGL filtering parameters and mipmap
同时调用两者时
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
和
glGenerateMipmap(GL_TEXTURE_2D);
在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);
注意,glGenerateMipmap
无论如何都会生成 mipmap。如果纹理缩小为 GL_NEAREST
或 GL_LINEAR
,则纹理查找中的 mipmap 为 "ignored"。
如果缩小函数是 GL_NEAREST_MIPMAP_NEAREST
、GL_LINEAR_MIPMAP_NEAREST
、GL_NEAREST_MIPMAP_LINEAR
或 GL_LINEAR_MIPMAP_LINEAR
并且没有生成 mipmap,则纹理不完整,纹理访问将return (0.0, 0.0, 0.0, 1.0), 在shader程序中。
同时调用两者时
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
和
glGenerateMipmap(GL_TEXTURE_2D);
在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);
注意,glGenerateMipmap
无论如何都会生成 mipmap。如果纹理缩小为 GL_NEAREST
或 GL_LINEAR
,则纹理查找中的 mipmap 为 "ignored"。
如果缩小函数是 GL_NEAREST_MIPMAP_NEAREST
、GL_LINEAR_MIPMAP_NEAREST
、GL_NEAREST_MIPMAP_LINEAR
或 GL_LINEAR_MIPMAP_LINEAR
并且没有生成 mipmap,则纹理不完整,纹理访问将return (0.0, 0.0, 0.0, 1.0), 在shader程序中。