Unity HDRP Custom Pass 实现场景雪地效果

先使用Shader Graph连一个使用模型法线添加雪地的shader,并赋给一个material。

1.1 先拿到模型世界坐标下的顶点法线,简单处理一下,赋给透明度即可。
Unity HDRP Custom Pass 实现场景雪地效果_第1张图片

给场景添加Custom Pass,剔除不需要的层级。

1.在Hierarchy界面中,右键创建Volume -> Custom Pass
Unity HDRP Custom Pass 实现场景雪地效果_第2张图片
2.添加Draw Renderers Custom Pass 到Custom Pass Volume 中
Unity HDRP Custom Pass 实现场景雪地效果_第3张图片
3.附上材质,调整渲染为 All Opaque, Forward ,深度测试可以测试一下Equal,Greater,Always,。

Unity HDRP Custom Pass 实现场景雪地效果_第4张图片

4.Always的效果:
Unity HDRP Custom Pass 实现场景雪地效果_第5张图片

解决报错(Your HDRP setting do not support Forwardonly, some objects might not renderer)。

1.解决该报错,需要调整当前使用的HDRP Asset的光照渲染模式为ForwardOnly
2.当前使用的HDRP Asset可在Edit -> Project settting -> Quality -> Rendering -> Render Pipeline Asset 查看到。
Unity HDRP Custom Pass 实现场景雪地效果_第6张图片

优化Shader Graph。

1.可以通过Frame Debugger中查看当前Custom Pass的渲染队列
Unity HDRP Custom Pass 实现场景雪地效果_第7张图片
Custom Pass 挂载的材质只是在原有材质上附加了一层,如果我们需要雪地的过度,就需要对用法线得到的透明度进行剔除。主要就是对法线操作。
Unity HDRP Custom Pass 实现场景雪地效果_第8张图片

效果:Unity HDRP Custom Pass 实现场景雪地效果_第9张图片

Unity HDRP Custom Pass 实现场景雪地效果_第10张图片

你可能感兴趣的:(unity,游戏引擎)