您当前的位置: 首页 >  unity

Clank的游戏栈

暂无认证

  • 3浏览

    0关注

    186博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

一文带你了解Unity Shader-小飞侠轻功(径向模糊)

Clank的游戏栈 发布时间:2020-08-11 17:13:01 ,浏览量:3

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

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

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

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

原理其实是这样的:

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

Bingou,那就是圆。

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

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

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

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

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

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

关注
打赏
1661738913
查看更多评论
立即登录/注册

微信扫码登录

0.0449s