OpenGL 上的图标渲染

Icon rendering on OpenGL

我想使用 OpenGL 渲染 RGBA 图标(对于 UI)。首先,我使用 gimp 将图标缩放为 2 的幂。然后,我使用 lodepng 加载图标,然后使用 OpenGL 渲染它(图标纹理使用 GL_LINEAR 和 GL_LINEAR_MIPMAP_LINEAR) .图标显示出来了,但是有点模糊

我猜这是因为像素拟合不好。但是,我不知道我能做什么。

编辑:使用高 (16x) MSAA 解决了问题,但性能损失太高。

Edit2:我正在使用此着色器对图标纹理进行采样

#version 140
noperspective in vec2 pos;

uniform sampler2D tex;

out vec4 colorOut;


void main(void){
    vec4 v=texture(tex, (pos/2)+vec2(0.5));
    colorOut=vec4(v);
}

Andon M. Coleman 解决方案很有效(而且非常简单),但我想在运行时将图标缩放到合适的大小。

我的解决方案是每个像素获取多个 (8x8) 纹素,这对于实时应用程序来说太慢了,但由于图标大小不会改变,因此可以将结果缓存在另一个纹理上。然后,我只需要为每个像素获取一个样本。

结果不如 Andon M. Coleman 解决方案清晰,但看起来相当不错。