我在OpenGL中遇到了混合问题(在抗锯齿或纹理绘画的结果)。请参阅问题说明:
我有以下设置代码
// 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);
请指出这个问题的解决方案。
答案 0 :(得分:6)
OpenGL在线性RGB色彩空间中混合,但您的显示器不是线性的。这会导致明显的alpha值根据背景是亮还是暗来改变。尝试使用GL_EXT_framebuffer_sRGB
扩展名。