【UE5】深度水材质制作
简介
使用世界位置和像素位置得到当前像素深度,通过深度影响各种效果,主要有以下效果:
- 颜色:用深度影响浅水区和深水区的颜色渐变;
- 不透明度:浅水区更透明;
- 折射:水越深折射效果越强;
法线直接使用一个法线贴图,叠加两层混合。
反射效果不使用自带效果,直接使用采样自定义CubeMap实现,并直接输入自发光颜色中。同时使用菲涅尔项控制反射显现角度。
折射效果使用参数IOR控制,同时,水体深度越深效果越强。为了防止出现瑕疵,随着相机的远离,折射效果将会渐渐消失,同时在屏幕边缘也会消失。
效果展示
材质细节
材质设置为最简单的半透明,默认光照。
世界空间Depth Fade
自带的DepthFade使用的是经过视锥体变换过后的深度,所以根据摄像机视角变化会有扭曲,因此这里使用两个深度相除消除扭曲,并计算出Depth Fade值。
不透明度及颜色
都是通过控制DepthFade的值调整的:
法线
使用两层法线简单混合一下即可,可以分别控制强度。
反射
由于使用的是最简单的半透明材质,半透明度光照模型为体积无方向,因此反射需要自己做。这里我们直接采样一张反射CubeMap。
并根据菲涅尔项决定强度,直接连入自发光。
折射
使用一个alpha在1和IOR(折射率)之间插值。其中可以影响alpha的有:
- 深度:深度浅的地方没有折射,可以处理水面浅处出现折射瑕疵的问题;
- 摄像机深度渐隐:根据摄像机远近调折射强度,摄像机越远效果越弱。
- 屏幕边缘渐隐:由于项目使用的是后处理折射,在屏幕边缘会出现折射瑕疵,这里用屏幕UV进行处理,在屏幕边缘进行渐隐操作。
对于该材质,材质输入的法线只影响折射,所以可以在这里单独调节折射受法线影响的强度。
材质调整
可以用BC_Shallow和BC_Deep两个颜色参数调整水体深度颜色,十分方便直观,方便美术师的使用于调整。
其它优化
- 添加水下效果(使用后处理)和水面水下切换效果;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 SuzhiのBlog!
评论