URP | 深度屏幕雾效

效果
简单效果

增加贴图效果

目的
使用深度和贴图模拟雾效。
使用贴图不同通道制作云雾效果。
制作思路
第一步,使用深度计算和模型接触部分柔和过度,具体细节参考 URP | Depth 深度 - 哔哩哔哩 (bilibili.com)
第二步,使用贴图制作出不同厚度云的效果。
准备部分
创建一个场景,在场景中增加一个模型片

定义3个控制属性
柔和大小,雾的颜色,控制在柔和一点。
在顶点着色器阶段计算
齐次空间转换到屏幕空间。
片元着色器阶段
这里和上面的方法都一样。详细查看深度。
输出
效果

属性调整

全部代码

云雾效果
制作思路,使用一张贴图,调整不同的UV实现不同的平铺方式,在叠加。就可以实现不一样的纹理。
让俩层纹理不同的UV速度移动,模拟云层的运动。
准备素材
准备一张云雾贴图

制作Shader
在上面的基础上增加贴图。
因为需要UV动画,把前面的UV移动速度的函数复制过来。
定义一个Vector类的的变量,控制俩套UV的不同的移动速度。
_Niose_R_Tiling _Niose_G_Tiling 控制平铺次数。
定义俩套贴图,读取不同通道。
在把俩套贴图混合
_Blend 控制俩个纹理的混合。
效果

深度和纹理一起输出看一下效果
效果

目前边缘有切边效果,我们增加遮罩。

整体贴图效果

这样我们使用Alpha通道作遮罩通道。
效果

总结
深度的第一种的方法适合制作类似纪念碑谷这个风格的深度雾效。
使用一张贴图不同通道实现不同纹理,这样的方式时候灰度图,带有颜色不能这样使用。
这样还有一个问题,如果修改需要打开PS在PS里修改效果。
资料参考
unity urp 实现类似纪念碑谷内的雾_哔哩哔哩_bilibili