mx_rgbtohsv
mx_rgbtohsv
将颜色从机器友好的 RGB 颜色空间,转换为对人类更直观的 HSV(色相、饱和度、明度)颜色空间。
核心优势
能够对颜色的色相、饱和度和亮度进行独立且可预测的控制,极大地简化了艺术性颜色调整和基于颜色属性(如亮度)的特效实现。
常见用途
在高级颜色校正流程中,对 H/S/V 分量进行独立调整。
提取颜色的明度(V 分量)作为特效混合的蒙版。
在色键抠图中,通过分析色相(H)和饱和度(S)来精确识别背景。
如何调整
这是一个纯转换函数,没有可调参数。其效果体现在输入与输出的对应关系上:例如,任何灰度颜色(如 vec3(0.8, 0.8, 0.8))输入,其输出的饱和度(y 分量)都将为 0,而明度(z 分量)则等于其灰度值 0.8,这清晰地分离了颜色的亮度和色度信息。
代码示例
1// 将 RGB 转换为 HSV 以便调整
2const hsvColor = mx_rgbtohsv( originalRgbColor );
3
4// 将饱和度提升 50%
5const adjustedHsv = vec3( hsvColor.x, hsvColor.y.mul( 1.5 ), hsvColor.z );
6
7// 转换回 RGB 以供显示
8const finalRgbColor = mx_hsvtorgb( adjustedHsv );