欢迎光临散文网 会员登陆 & 注册

25.Shader进阶-TheWorld空间扭曲效果

2023-09-10 13:10 作者:机智的小草yns  | 我要投稿


所需技术

GrabPass屏幕抓取+uv偏移+颜色变化

GrabPass可见前篇


核心算法-uv偏移

主要理解下面两句

dir是中心点uv的向量到当前点uv向量

在cos函数周期, 原本等距分布的uv点, 点会聚集在波峰/波谷,

便得到以半径为作用范围的局部挤压 和 局部舒展 交替的图像

由于len是uv计算而来的,长度不超1,所以这部分看起来像凹陷的效果

当cos函数输入值超过1是,则会得到这样的图像,大部分的点都集中在radius的倍数上

由于cos是[-1,1]不断更替,所以得到镜像 拼接着 镜像的图像


为了在同一时间内只显示一圈, 需要把多余的外圈裁剪掉

增加一个[0,1]的进度current_progress

得到的cut_factor乘上原来的uv_offset,决定是否显示,就得到一个波纹

后续则需要对它的波次,半径,宽度,弱化的等参数做处理,然后写一个时间控制器让它动起来

看源码和参考来源

https://github.com/smartgrass/ShaderProject/tree/main/Assets/Demo/TheWorld

参考来源(思路写得很清晰)

https://github.com/dtysky/paradise/tree/master/src/collection/ShaderWaterRipple


关于Shader进阶要学什么

1.做感兴趣的效果

2.跟着github做

https://github.com/QianMo/Awesome-Unity-Shader

https://github.com/JiepengTan/FishManShaderTutorial

3.都做一遍:

水面,草地,体积云,SS系列,复刻原神卡渲

URP/HDRP,抗锯齿


25.Shader进阶-TheWorld空间扭曲效果的评论 (共 条)

分享到微博请遵守国家法律