OpenGL中的糟糕(不吸引人)混合与深色背景上的明亮数字

时间:2011-10-10 09:47:19

标签: c opengl textures blending

我在OpenGL中遇到了混合问题(在抗锯齿或纹理绘画的结果)。请参阅问题说明:

Problem illustration

我有以下设置代码

// Antialiasing
glEnable(GL_POINT_SMOOTH);
glEnable(GL_LINE_SMOOTH);
// Blending
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
// Texture font
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);

请指出这个问题的解决方案。

1 个答案:

答案 0 :(得分:6)

OpenGL在线性RGB色彩空间中混合,但您的显示器不是线性的。这会导致明显的alpha值根据背景是亮还是暗来改变。尝试使用GL_EXT_framebuffer_sRGB扩展名。