什么是饱和度?代码改变颜色饱和度|游戏开发小知识
引用百度百科下的一些定义:
- 色彩的饱和度(saturation)指色彩的鲜艳程度,也称作纯度。
- 在色彩学中,原色饱和度最高,随着饱和度降低,色彩变得暗淡直至成为无彩色,即失去色相的色彩。
简单来说饱和度指的是颜色的鲜艳程度,饱和度越高的像素,偏灰色的成分就越少。而饱和度为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.playcreator.cn/archives/unity/3797/
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
来源:麦瑞克博客
链接:https://www.playcreator.cn/archives/unity/3797/
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
THE END
1
打赏
海报
什么是饱和度?代码改变颜色饱和度|游戏开发小知识
引用百度百科下的一些定义:
色彩的饱和度(saturation)指色彩的鲜艳程度,也称作纯度。
在色彩学中,原色饱和度最高,随着饱和度降低,色彩变得暗淡直至成……
文章目录
关闭