灵感:
在玩HDRP的内置Lit着色器的时候,对它的Mask Map贴图很感兴趣,感觉似乎能够为材质添加很多细节
不使用Mask Map
使用Mask Map
查了下文档,发现Mask Map是分RGBA通道作为灰度蒙版,为材质添加金属度、环境光遮蔽、细节贴图蒙版与粗糙度效果的
让我最感兴趣的是A通道的粗糙度蒙版,就像上图那样,能营造出非常类似物体表面的水雾的感觉。
恩..如果我用Shader让这个A通道做一个平移,再加点噪声,说不定就能做出来类似下雨时物体表面潺潺流水的效果?
实现思路:
使用ShaderGraph的Time与Tilling and Offset节点将UV做一个平移,加上线性噪声节点做一些扭曲,添加一点随机性。最后直接复用原材质的Mask Map的A通道并应用扰动。用一个布尔来控制是否应用效果。添加各种属性值就不说了。应该还不错。
在实现过程中,由于HDRP的内置Lit着色器没有ShaderGraph版本,就从论坛上找了一个官方的Lit着色器的ShaderGraph版本,基于它进行修改。
整体(糊也没事..大部分是官方给的,用于实现Lit的特性,核心就那上面的一小点)
核心效果实现(就这几个节点..真的挺简陋的..)
效果:
砖墙材质
石碑(?)材质
模型效果
一些个人感受:
- 这是个很粗糙的效果,用到的节点也很少,之后要实际应用的话肯定要补充很多细节,比如单独做水流的Mask应该会好很多
- 个人认为的效果优缺点:
- 优点:
- 和网上其他的雨水效果比起来,对性能影响应该蛮低的。加上天气效果以及一些点缀应该也能实现不错的效果
- 简单啊(连我都能做出来..),直接复用材质自己的Mask Map也懒省事了
- 因为不同材质的Mask Map不同,所以这个效果也会带有各自材质的特点,不会说效果千篇一律看着疲劳
- 缺点:
- 对于较为光滑的平面类物体感觉效果比较一般
- 因为复用了原材质的Mask Map,应用效果时材质自身的粗糙度会丢失,不太好
- 可远观而不可亵玩(bushi),在远处看起来还不错,如果离得太近的话就能比较明显的看出来违和的平移与噪声
- 优点:
- 总之还是个很粗糙的效果,不过这种思路应该还是有点意思的,必能活用于下一次..
参考链接:
- https://forum.unity.com/threads/trying-to-replicate-the-hdrp-lit-shader-i-need-help-with-the-detail-input-part.660538/ Unity Forum-ShaderGraph版Lit原贴
- https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@7.1/manual/Mask-Map-and-Detail-Map.html Mask Map文档
- https://github.com/OnyxAmber/UnityHDRP_ShaderGraphTest 把着色器图与材质传到Github上了,项目太大就不传了,直接拖入Unity窗口即可。使用贴图也是HDRP自带的示例。
暂无关于此日志的评论。