- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 MAG_FILTERING = GL_NEAREST 设置了纹理。
我不希望将其设置为 GL_LINEAR,但在我的一个着色器中,我想获取纹理的内容,就好像它是 GL_LINEAR。
我一直在努力寻找答案,但找不到任何可靠的东西,也找不到任何例子。
目前的代码是:
uniform sampler2DRect sampler1;
in vec2 vTexCoo;
main() {
out_diffuse = texture(sampler1, vTexCoo);
}
理论上我可以构建一个插入 4 个像素的函数,但是嗯……肯定有某种方法可以指定要使用的过滤器。
最佳答案
从 OpenGL 3.3 Core Profile 开始,您可以使用 Sampler Objects指定采样参数。当样本对象绑定(bind)到纹理图像单元时,它基本上会覆盖绑定(bind)的纹理对象的所有内部采样器设置。
使用类似于以下的采样器来始终使用线性过滤:
GLuint sampler = 0;
glGenSamplers(1, &sampler);
glSamplerParameteri(sampler, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glSamplerParameteri(sampler, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
将纹理绑定(bind)到纹理单元时,您还必须绑定(bind)采样器对象。
GLuint texture_unit = //The texture unit to which your texture is bound
glBindSampler(texture_unit, sampler);
不要忘记在使用 glBindSampler(texture_unit, 0);
绘制后取消绑定(bind)采样器,因为采样器绑定(bind)到纹理单元而不是特定着色器。
请注意,由于您使用的是矩形纹理,因此不支持 mipmapping。
关于opengl - glsl 片段着色器 - 如何将 GL_NEAREST 纹理采样为 GL_LINEAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73444725/
我本来用的是 glut,现在才改用 GLFW。我的 GL_NEAREST 纹理现在使用 GL_LINEAR,这根本不能很好地工作(我的纹理对于样式来说分辨率非常低)。 if (!glfwInit())
我正在写一个 application that uses a GLSL fragment shader to do some color conversion to RGB .此应用程序使用 GL_T
我成功地在 openGL 中使用纹理生成了高度图。该数据的全貌如下图所示。但是,当我在我的 glTexParameteri (MinMag) 中使用 GL_LINEAR 选项时,它会给我外部伪像。 这
我使用 MAG_FILTERING = GL_NEAREST 设置了纹理。 我不希望将其设置为 GL_LINEAR,但在我的一个着色器中,我想获取纹理的内容,就好像它是 GL_LINEAR。 我一直在
我是一名优秀的程序员,十分优秀!