如何解决OpenGL程序纹理抗锯齿
我使用一个简单的GLSL着色器制作了一个网格,将纹理坐标传递给片段着色器。它被应用于大型平面。
片段着色器:
#version 330 core
out vec4 fragColor;
smooth in vec2 f_TexCoord;
vec4 gridColor;
void main()
{
if(fract(f_TexCoord.x / 0.0005f) < 0.025f || fract(f_TexCoord.y / 0.0005f) < 0.025f)
gridColor = vec4(0.75,0.75,1.0);
else
gridColor = vec4(0);
// Check for alpha transparency
if(gridColor.a != 1)
discard;
fragColor = gridColor;
}
如您所见,线条不平滑,并且在地平线上开始“闪烁” 。 是否可以对其应用某种过滤/抗锯齿功能?我尝试增加样本数量(最多4个,因为更高的值会给我带来qt错误),但对着色器没有影响。
解决方法
至少切换到GLSL版本4.20,激活多重采样,并将Auxiliary Storage Qualifier sample
用于顶点着色器输出(和片段着色器输入):
#version 420 core
sample smooth in vec2 f_TexCoord;
限定符会导致每个样本的插值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。