1

我在 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);

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

4

1 回答 1

6

OpenGL 混合了线性 RGB 颜色空间,但您的显示器不是线性的。这会导致明显的 Alpha 值根据背景是浅色还是深色而发生变化。尝试使用GL_EXT_framebuffer_sRGB扩展。

于 2011-10-10T09:53:49.560 回答