原创作品

解决Shader Graph做后处理没法渲染半透明问题

锅锅侠 发表于   2022-08-30 21:18:56
4120
4
28

  不知道大家有没有被ShaderGraph的一个问题困扰过,就是在做扭曲,或者色相分离,黑白闪等特殊效果时,总是没法渲染到半透明也就是被裁掉了。如下图:

q.png

  其实任何这种处理,都是拿屏幕截图来做其他效果(这样理解就行)然后网上有很多相关问题,怎么说呢,对于我们美术来说都相对复杂,比如ShaderGraph里的SceneColor节点,其实它抓取的只有不透明物体,半透明是抓取不到的。我深入研究了一下,发现它其实只抓取这上面部分。如下图:

q2.png

  所以我们在用SceneColor节点的时候,获取不到半透明信息。我托腮一想,既然获取的是上半部分信息,那如果我把特效层级放在CopyColor上面是不是就可行了?

  于是乎,我添加了个渲染层级命名为Effect。如下图:

q3.png

然后我们打开渲染管道设置。双击下图:

q4.png

在双击下图所示:

q5.png

我们在下面添加如下所示:

q6.png

Event之所以选这个,是因为这个渲染在Copycolor之上。

然后回到场景,我们将特效层级调整为如图所示:

q7.png

然后再看就渲染正常了。

q8.png


怎么说呢。这个不好的一点就是之后做的效果都得选这个层级。这个的方法目前测试起来,层级,Bloom都正常(网上其他教程要么没有Bloom,要么渲染层级不对。把人折磨死)性能上感觉也还好,不过真用在移动端可能还是多少会有点问题?这个就不太知道了。毕竟Unity也没有默认把半透放进去,自然有它的道理吧。


总之,如果是自己平时做做练习的话,就用这个方法来设置吧,项目中自己找TA解决吧。


最后。近期会更新各种后处理效果的ShaderGraph教程。ASE,Graph,UE4的材质系统,都大同小异。我们特效人员,其实只需要理解0和1所表达的意思后,基本可以自己满足一切特效需求了。

谢谢观看,再见。


标签:
确定
评论(4)
咕咕叫的不咕鸟
大佬,为毛我的URP和HDRP的粒子渲染感觉不正确的样子,会闪烁,仔细看就是有的粒子的后效失效了,然后开边框那些粒子就是有时候会变成长方形然后又变回正方形
回复
520天前
杨呲花儿
这个问题困扰了我二十八个项目了 直接损失十个小目标
回复
583天前
魔法盒用户
谢谢分享
回复
622天前
锅锅侠
回复
魔法盒用户
不客气,鸭鸭
回复
619天前
MAD13
这个问题困扰我一个项目了
回复
627天前
没有更多啦~
  • 咨询
    客服
  • 扫码加入QQ群 或搜索QQ群号: 797421367
  • 扫码关注公众号 或微信搜索: cokey游戏特效