Unity Shader学习8:缩放星星特效 - ShaderForge + ParticleSystem

这个效果做起来逻辑不难,在shader中做出一个矢量的星星的图形,之后通过粒子系统来控制缩放参数即可。

0、效果:

一、 Shader部分

1. 交叉星星图形

对u、v坐标取difference(相减的绝对值),得到两条对角线——>线性减淡一次——>相乘 = 星星图案。

2. 星星边线

        边线的做法是用范围更大的(Substract)范围更小的,所以可以用power做出一个黑色范围更大的星星。
        因为要做边线,所以用到Step结点将星星改为硬边缘。这里的Step(A<=B)结点的用法是,将两个输入A和B作比较,A<=B,输出1,否则输出0

3. 修改颜色

        分别设置边线和内部的颜色,用Add相加。

4. 更改为透明

这里用的方法是将前面的到的大星星直接拿去剪裁,刚好要剪掉的地方数值为0,保留的位置数值为1 。


总览:

二、粒子系统部分

这一部分就是将shader拖到粒子上,并修改粒子系统的参数让它实现bling bling~的效果

1. 控制星星随机生成

a. particle system|
① 初始速度(startSpeed) = 0
② lifetime:random from 0.3 to 0.6
③ startSize:random from 0.2 to 0.5

b. shape
① radius = 2

c. size over time
curve 一个 小到大到小 的曲线
 

2. 星星自行缩放

这里借助的原理是粒子系统的custom data1(vector)的数据可以对应shader中的uv1,所以可以将原shader中控制缩放的滑条 改为uv1(利用其中值为0-1的一个通道即可<这里用的u通道,对应自定义数据中的z分量>,通过在粒子系统中控制这个自定义数据的z值 来控制控制u通道的值 进而控制星星的缩放。

① shader中控制缩放的滑条替换成uv1u通道
② 在renderer中添加一个custom data:custom1.xyzw
③ 勾选粒子系统的custom data,模式mode选为vector
④ 将z值设为0过渡到1的曲线curve

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值