2.4.x shader,教你去掉移植shader黑色背景的简单解决方法(适合大部分shader)

一. 移植shader 时,总会带有黑色的背景,如果背景和展现出来的特效颜色差别大还好,就怕特效和背景颜色特别相近,那么这种shader如何去掉黑色背景呢?

  1. 先看一下如下图的shader特效
    之前的帖子: 2.4.x 红色闪电shader实现源码 - Creator - Cocos中文社区
    20210717_174923

  2. 我们都知道,在shader中,纯黑色可以这样写如下图
    捕获
    gl_FragColor 可以理解为,我们shader需要输出的颜色,vec3(0.) 代表的颜色值,后面的1. 代表透明度
    根据上面代码,如果要实现透明背景,那么我们需要根据颜色值,从而计算当前颜色下的透明度,
    既,背景的部分,我们需要设置它的透明度为0.,让它完全透明,背景与颜色有重叠的部分,我们要根据颜色值,做适当的判断,一定范围内的值,设置它的透明度为0.,如下图代码:
    捕获
    上图代码,我取的颜色值x、y、z的绝对值的和,如果想更细致的判断,可以分别判断x,y,z的值
    3.工程测试代码如下:
    2_4_x_shaders_demos_20210717.zip (816.6 KB)

    4.上面代码只是简单实现透明背景,有更好的方法可以留言,互相学习,非常感谢您的审阅
    5.上面的说明,全是大白话,不太会说专业术语,有不对地方请见谅,以后改正

11赞

赞啊…

mark, 后期备用

大佬,可以看看这个问题么https://forum.cocos.org/t/topic/123234

mark666