使用ShaderGraph制作边缘融合粒子Shader的启示

37 篇文章 3 订阅

先上图:

启示一:

粒子生命周期Color控制的是Vertex Color的值,所以要想让使用这个Shader的粒子能够控制生命周期的颜色,需要使用Vertex Color节点与Color节点和SampleTexture2D节点相乘。 

启示二:

节点SceneDepth在Eye选项下是基于视角的原始深度值,也就是基于摄像机空间的位置的Z坐标的绝对值,不是0,1范围内的深度值。ScreenPosition使用Raw选项时,A分量是当前渲染内容的Z坐标的绝对值,由于是粒子系统,该渲染应该是处于透明渲染阶段,如果该像素点深度检测通过,说明A分量小于对应原始深度值,可以根据两者的差值影响该像素的透明值。

启示三:

如果使用Lit形式的ShaderGraph模板,粒子会受到灯光影响,由于粒子总是朝向摄像机,这可能导致从不同的方向观察粒子时亮度明显变化,所以使用了Unlit模板的粒子,这里只让环境光来影响粒子的亮度,本来以为应该使用Ambient节点的Color/Sky输出来与颜色相乘,但是这个Ambient节点不按我的理解输出,总是输出0,根本没法用。谷歌上搜索了一下国外的帖子,有人说Baked GI节点输出的亮度是环境光的亮度,我试了一下,用这个与原色相乘,果然正确!这咋回事呢?有大神给科普一下吧,不胜感激!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值