使用shader可以办得到把灰色的更换成红色的么?


1赞
可以,只需要确定灰色颜色区间,在这个区间类改变成你需要的颜色.
这个把blue和green强制设置为0就行了吧
噗,抱歉,是我的锅,忘了分享这类文章。
换色基本步骤:
- 1、求出原图灰度
- 2、灰度乘以目标颜色
假如要更换的目标颜色为:
vec3 targetColor = ....;
//计算原图灰度
float gray = o.r * 0.299 + o.b * 0.587 + o.g * 0.114;
//目标颜色乘以灰度
o.rgb = targetColor.rgb * gray;
友情提示:
targetColor是目标颜色,想换什么色就是什么色,不受原图颜色影响。
6赞
另外,你演示的这个效果,不是换色。而是颜色叠加。。
如果你是想要这个效果,应当用乘法。。 原图颜色 * 上面这层红色。
如果你是在Photoshop中用的OVERLAY,那情况还要复杂些。简单的乘还不行。 找了张公式对应表给你:

6赞
o.g * 0.114
哈哈,谢谢指正。已修复。
谢谢,这里是全部代码了么
谢谢回复,没接触过shader,研究一下先
可以出个demo之类的学习一下么?之前没接触过shader,正好想学习一下了
意思是红色加强,强度可以调整color的 r 分量值
收徒不?? 学shader
收啊,欢迎加入。 关注Cocos官方公众号和视频号,我会在上面分享 Shader 相关教程。


