基于hsv的亮度调整算法_一种快速计算hsv染色的方法

b481de21107df4f7a5d9fed167f67551.png

目前常用的染色实现方式有两种,一种是将rgb转换成hsv,修改色相的值,然后再转换回rgb。另一种则是使用色彩通道混合的做法,每个通道分别乘一个颜色并加起来,也可以调整参数混合出想要的颜色。

游戏里的染色,通常都会允许玩家在色盘里任选颜色。这种情况下hsv就比通道混合容易处理许多,只要改变h的值就可以了。但是hsv的两次转换计算量又比较大,而通道混合只需要一次mul(三点乘)就可以了。既然他们都可以得到类似的结果,那么有没有可能,让玩家操作的时候用hsv的方法进行调色,然后我们再用这个调好的结果和原图的差异反推出对应的通道混合参数呢?这样可操作性和性能就能兼顾了。

很显然是可以的。其实这就是一个十二元方程组,解有很多。

下面是的一个实现,具有相当程度的泛用性,而且使用非常简单。我先介绍下它的思路和原理。

Affine HSV color manipulation​beesbuzz.biz
0f902aafc63f1b2f51a544cae4aa8ffd.png

它用了另外一个特别的色彩空间YIQ(YIQ_百度百科),而没有使用传统的H

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值