Unity Shader-小肥猪轻功(径向模糊)

Unity Shader-小肥猪轻功(径向模糊)-腾讯游戏学堂

我们经常可以看到游戏赛车游戏里面,当向前加速的时候,四周空气模糊,并且气流向四周扩散,有种空气被排开的感觉。

还有就是《天涯明月刀》在做轻功的时候,也是那么一种效果。

没错,那个就是用到了径向模糊

今天我就做个,小肥猪轻功,先上效果图:

FG3dU3CQZDOaTJySgFZM.png

原理其实是这样的:

你看画面,空气是围绕着中间散开的,想到啥图形可以表现这种效果吗,

Bingou,那就是圆。

myOBT8RBL9fdoKLp5GH5.png

所以,我们只要定个焦点(或者中心点_FocusPos),然后其他图像上的点,对应算下向量,即:

Dir =FocusPos - CurPos;   

(CurPos为当前的点, 对应shader函数frag里面,就是i.uv.xy)

然后沿着这些方向Dir,隔一段距离取几个像素,混合起来,就可以看起来像是有径向模糊的效果了:

Hq1i2xkwrZ4dz5BRshIH.png

到这里就好了吗,不是的,很多网上的文章大概就写到这里,但是其实效果没有那么好,因为焦点上的东西,一定程度上也会被模糊掉了,所以这时候,我们焦点附近的,我们就要少一点模糊。这时候我们我们就要用上我们伟大的step函数了:

cA6feGwZ5bZn8mVXZOHs.png

OK,判断了是否大于一定距离的,我们就把上面col * isFarAway,就少采样,少模糊了。

对了,对了,如果你追求性能极致,然后当你使用该方法调出效果后,你可以把for循环改掉,直接硬编码会更快~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值