Opengl 为什么在使用sampler2D在曲面上渲染纹理后对其进行插值
我正在用C#中的OpenTK编写一个程序,目前我试图在一组立方体上获得纹理 我的问题是,当我使用包含3个像素的给定纹理,并将位图放入我的着色器中,使其成为一个二维采样器时,它会在渲染时对纹理的颜色进行插值,而不是在每个立方体的每一侧给我3条带3种颜色的线 为了将其放入着色器中,我使用了与上给出的代码类似的代码 下面是我的片段着色器中的确切代码:Opengl 为什么在使用sampler2D在曲面上渲染纹理后对其进行插值,opengl,glsl,textures,opentk,Opengl,Glsl,Textures,Opentk,我正在用C#中的OpenTK编写一个程序,目前我试图在一组立方体上获得纹理 我的问题是,当我使用包含3个像素的给定纹理,并将位图放入我的着色器中,使其成为一个二维采样器时,它会在渲染时对纹理的颜色进行插值,而不是在每个立方体的每一侧给我3条带3种颜色的线 为了将其放入着色器中,我使用了与上给出的代码类似的代码 下面是我的片段着色器中的确切代码: #version 430 core uniform sampler2D materialTexture; in vec2 uvPos; out v
#version 430 core
uniform sampler2D materialTexture;
in vec2 uvPos;
out vec4 color;
void main()
{
vec4 materialColor = texture2D(materialTexture, uvPos);
color = materialColor;
}
此处,图像用作gimp中显示的纹理:
这里是当前的结果
我要怎么做才能在立方体上渲染图像而不进行插值?
OpenTK中是否有可以设置的标志或调用来防止出现这种情况?您需要对放大功能使用最近邻过滤 这里有一个3x1纹理,需要放大以在场景中拉伸。OpenGL中的默认放大过滤器(
GL\u纹理\u MAG\u过滤器
)是GL\u线性
,它插值四个最近的纹理
GL\u NEAREST
将产生您想要的行为。缩小(当纹理分辨率太高时)不适用于此处,但也默认为线性过滤。。。。如何使用这种过滤模式?显然,我知道答案,但我的观点是OP甚至不知道过滤模式是什么。所以他可能不知道如何设置它们。@Nicolas:Search me,问题是讨论一个显然封装了纹理加载的特定框架。我选择只解释搜索所需的术语。