美文网首页
OpenGL shader中如何调整色彩亮度

OpenGL shader中如何调整色彩亮度

作者: 绿风烟 | 来源:发表于2020-03-14 22:32 被阅读0次

    shader中色彩亮度的调整方法

    如果要调节一个色彩,那么这个行为可以对应到RGB坐标的缩放操作上。一个色彩若要到达其最大亮度,则通过缩放其RGB值,使得至少其中一个值达到最大值1(实际上可以大于1)。

    在shader中如果要使得一个色彩变得更加明亮,则使用一个大于1的标量因子对RGB坐标进行整体放大。然后使用函数将最大值限制到1,最小值限制到0,代码例子如下:

    //将漫射色彩调亮50%,注意clamp函数将色彩各部件限制到有效范围
    colorDiffuse = clamp(vMaterialDiffuse * 1.5,
                             vec4(0.0, 0.0, 0.0, 0.0),
                             vec4(1.0, 1.0, 1.0, 1.0));
    

    注:如果RGB坐标放大的倍数过大,则所有部件值都达到1,整个色彩就显示为白色。这种情形下,色调(color hue)已经变化。如果要较好保持色调,那么放大的倍数应该仅能让其中的最大值刚好到达1。

    相关文章

      网友评论

          本文标题:OpenGL shader中如何调整色彩亮度

          本文链接:https://www.haomeiwen.com/subject/gfgoshtx.html