什么是饱和度?代码改变颜色饱和度|游戏开发小知识

引用百度百科下的一些定义:

  1. 色彩的饱和度(saturation)指色彩的鲜艳程度,也称作纯度
  2. 在色彩学中,原色饱和度最高,随着饱和度降低,色彩变得暗淡直至成为无彩色,即失去色相的色彩。

简单来说饱和度指的是颜色的鲜艳程度,饱和度越高的像素,偏灰色的成分就越少。而饱和度为0(这里认为0为饱和度最小值)的一组像素呈现的色彩是无彩色的,即黑白的。

那么RGB三个Channel为何值时,饱和度为0。这里先给出结论:当RGB三个分量相同时,饱和度为0,呈现无彩色。

可以看一下美术工具的调色板来验证这个结论:

找到了一个饱和度计算的公式:(其中M为颜色通道的最大值)

就不论证这个公式了。

现在知道了当RGB三个分量相同时,饱和度为0。那么我们就可以拿这个最小饱和度去计算出目标颜色。

伪代码如下:

//Properties: color-原颜色  scale-饱和度 grayColor-某个饱和度为0的颜色
gray  <-  calculate(color)
grayColor <-new (gray  ,gray  ,gray  ) 
color.r=grayColor.r+(color.r-grayColor.r)*scale
color.g=grayColor.g+(color.g-grayColor.g)*scale
color.b=grayColor.b+(color.b-grayColor.b)*scale

calculate(color)用于计算灰阶,其计算思路如下:

此处内容需要 回复 后才能查看

作者:Miracle
来源:麦瑞克博客
链接:https://www.unitymake.com/archives/unity/3797
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
THE END
分享
打赏
海报
什么是饱和度?代码改变颜色饱和度|游戏开发小知识
引用百度百科下的一些定义: 色彩的饱和度(saturation)指色彩的鲜艳程度,也称作纯度。 在色彩学中,原色饱和度最高,随着饱和度降低,色彩变得暗淡直至成……
<<上一篇
下一篇>>
文章目录
关闭
目 录