1、体积雾
这里介绍的是用于地面的体积雾效果,效果如图1-1:

图1-1
首先,需要场景中存在指数级高度雾并开启体积雾(如图1-2)。然后创建材质,材质域选择"体积",混合模式选择"Additive"。材质节点如图1-3。

图1-2

图1-3
这里介绍下材质的思路,纹理贴图是一张噪声图片(噪声值0~1),采样UVS只取UV(即XY),采样出来的颜色值R减去该点的S(即高度Z),结果连接到消光节点,作为该点雾气的浓度。实现越高的位置雾气越薄的效果。
2、体积光(基于体积雾)
如图2-1,包裹场景的是一个消光为0.1的体积雾,利用体积雾我们可以实现体积光的效果。但是由于消光在各个地方都是一样,这就导致在阴影处也有很强的雾气效果(如图2-2),这不是我期望的。我只希望在有光的地方有体积雾,没光的地方(阴影)没有体积雾。

图2-1

图2-2
这里利用ShadowMap的方式,在场景与太阳之间添加一个纹理捕获Actor,用于捕获该视角下的正交深度纹理(如图2-3),然后体积光材质中,利用当前坐标点采样正交深度纹理,如果该点的深度大于正交深度纹理的深度,则该点在阴影中,消光设置为0。否则设置为0.1。图2-4、图2-5为体积光的材质。
ShadowMap可以参考我之前的博客UE引擎实现ShadowMap、体积光(C++)
最终效果见图2-6

图2-3

图2-4

图2-5

图2-6
3、镜头泛光
这部分参考官方文档配置即可:虚幻引擎中的泛光
效果如图3-1

图3-1