UE4 树木积雪效果

Unreal Engine 树木积雪效果

1.简介:

在制作雪景效果时,主要以制作雪粒子系统为主,原来的场景却还是一片青翠,似乎有些太假。若是单独针对雪景创建场景,则工作量就会翻倍,有什么简便的办法,能够自动将当前场景附加上积雪效果呢,网上找了好久,UE4倒没有示例,不过找到一片Unity3d的教程:http://forum.china.unity3d.com/thread-22366-1-1.html。大致的意思是,可以通过后处理,获取像素法线向上的点,附加白色,来模拟积雪效果,明白其原理,事情就好办了。

2.创建材质

创建材质SnowPostEffect,设置其为postEffect
UE4 树木积雪效果

3.连接材质逻辑图:

UE4 树木积雪效果

4. 添加postEffectVolume 节点

UE4 树木积雪效果

5.设置对postProcessVoume节点设置材质

UE4 树木积雪效果

6.最终效果图:

UE4 树木积雪效果

7.其他

  • 本示例只是简单的实现了积雪的效果,但总体效果还是有些假,如果有UE4的高级美工,还望多多赐教。
  • 使用这种方式的场景,会出现轻微画面抖动(尤其是树叶),目前还没有找到原因,有高人请不吝指点。

8. 使用Deffered Decal 实现雪效果,解决场景抖动效果

  • 创建一个decal 材质:DecalSnow,设置BaseColor为白色。
  • 创建一个Decal bluePrint:DecalSnow_BP,将材质赋予DecalSnow_BP。
  • 在场景中实例化DecalSnow_BP,并修改其大小,将整个场景包裹。

9. 注意:

  • 对于使用foliage创建的树木,需要在foliage中勾选“Recevies Decals”选项,才可以正确渲染
  • 虽然以上方法解决了闪烁问题,但法线向上的遮挡物体仍然不能去除白色。
    UE4 树木积雪效果
    工程 source