这个其实挺简单的直接取平均就好了
void main()
{
color = texture(screenTexture, TexCoords);
float average = (color.r + color.g + color.b) / 3.0;
color = vec4(average, average, average, 1.0);
}
但是人眼趋向于对绿色更敏感,对蓝色感知比较弱,所以我们对颜色的g、b 通道进行调整以更符合人眼对色彩的感知
void main()
{
color = texture(screenTexture, TexCoords);
float average =
0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b;
color = vec4(average, average, average, 1.0);
}
该篇博客探讨了颜色平均处理的方法,指出人眼对绿色更为敏感。第一种方法简单地取RGB颜色通道的平均值。然后,为了更符合人眼对色彩的感知,博客提出了第二种方法,通过权重调整RGB通道,其中绿色通道权重最大。这种方法可以优化颜色平衡,提高视觉体验。
1724

被折叠的 条评论
为什么被折叠?



