Photoshop如何修改(半)透明像素的RGB值

实时渲染管线中,有一类很麻烦的问题:带alpha的纹理边缘颜色容易受到污染。其原理可以参见这篇文章

要修复此类问题,通常我们需要做texture bleeding处理,修改纹理素材,保留alpha通道不变的同时,修改RGB数值。

例如这张资源:

透明区域的alpha=4%,RGB都为57,也就是几乎透明的灰色。

(如果像素是全透明即alpha=0%,Photoshop还查看不了RGB值,属于软件缺陷,这一点我在StackExchange上得到过证实。不过仍然可以用本文方法查看。)

我们希望保持这些透明像素的alpha不变,只修改RGB全部变白。

对于“全部变白”的需求,用Python很好实现。例如我之前写过一个脚本,用于将一张图片的全透明像素全部刷成白色。

不过要是想人工控制不同区域的颜色,还是得借助Photoshop/Illustrator这一类图像软件。

下面我以Photoshop CC 2018英文版为例介绍操作,其他版本也应该类似。

1)选中图层,分离出alpha蒙版

图层面板可以看到RGB和Alpha被分离出来了:

2)暂时禁用alpha蒙版

3)选中图层本身,进行颜色修改

例如我们可以用Brush将图片刷成白色:

4)恢复开启alpha蒙版

可以看到,图片看上去和之前一样,但是原先的半透明像素的RGB都变成了255白色:

最后可以保存了。

 

实际操作中发现,对于全透明像素采用上述方法修改并保存可能无效,Photoshop会自动将全透明像素的RGB重置,猜测是又一个bug。

如果遇到此问题,建议换个软件,例如开源的GIMP(GIMP - GNU Image Manipulation Program),操作和Photoshop非常类似。

posted @ 2020-11-23 13:12  Xrst  阅读(1482)  评论(0编辑  收藏  举报