Building Worlds In Unreal 学习笔记——07-11 岩石树落木灌木绘制/溪水着色器/潮湿与焦散贴花/后处理

Posted 清清!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Building Worlds In Unreal 学习笔记——07-11 岩石树落木灌木绘制/溪水着色器/潮湿与焦散贴花/后处理相关的知识,希望对你有一定的参考价值。

Building Worlds In Unreal 学习笔记——07-11 岩石树落木灌木绘制/溪水着色器/潮湿与焦散贴花/后处理

本系列学习资料来源,Ben Cloward的油管空间,B站的搬运翻译

Lec07 岩石与树 Rocks and Trees

回来继续看看参考图
特征,到处都是石头,石头苔藓多

去Bidge找些资产来用,下载这三组

  • 设置如下
    贴图只要Albedo,normal,cavity,roughness
    模型要LOD1 3 4 5 ,导出的LOD1
    下载贴图2K
  • 下载后

参考图里有成千上万的石头,一个个放模型有些难搞,但是我们可以进入这个模式去快速把资产绘制到场景中

  • 绘制岩石

1 Foliage参数与绘制

下面全选所有岩石,说明一下参数

  • 关于剔除距离,如果全选设置一样的值,那么会是这样(我自己都设置4000)

    给每个岩石设置单独的值,有溶解的效果
  • 关闭 cast shadow,因为我们后面要加树木,树木有阴影,就不用石头自己的阴影了
  • 打开 Receives Decals接受贴花;打开Enable Density Scaling,可以进行密度缩放

画一些岩石

2 树木

收集树木资源,搜素open world demo,将其添加到工程(然而这里面的树用不动,经常崩溃,就没用这个)

以及这个demo添加到工程

它的文件导入后,把mesh下面的树拖进去

放几个树

但是这样还是不太真实,我们从来没有用过root来画地图
所以我们来在树底下画一画树根,同时也可以去抬高一下树根的地形

Lec08 落木与灌木 Foliage & Undergrowth

  • 首先查看参考图,确定资产——灌木/大石头/落木等等,而后去Quixel下载(可以下载一些封闭的模型,方便旋转),导入UE测试,通过植物笔刷绘制

  • 参考图中除了之前我们做的要素,还有巨石,落木,灌木,星星点点的草

  • 下载了哪些素材使用可以看油管简介里的链接

下载完列一列

记得给岩石加上碰撞体

  • 一些岩石属性设置

摆些石头


摆几个落下的树干和树根

画草(把草的材质实例里SSS调成绿色,强度调低)

效果如下

Lec 09 溪水着色器 Stream Water Shader

给河流铺上面片,在这上面做水的效果,中间断开的部分要做瀑布,这个以后再说

根节点这么设置


这是面片的水的着色器概览,可以看到蛮复杂的,逐个分解阐述

1 泡沫部分

原理在材质课的Lec28有讲过,可以返回去看之前的记录,下面也做了简述

  • Texture Object是一张泡沫贴图,其三通道包含不同密度的泡沫
    对其使用自带的Motion_4WayChaos材质函数(采样图片四次,每次进行不同的位移,然后叠加起来,造成混乱)
    使用世界坐标位置的XY作为该函数的UV输入
    外置了参数控制缩放,速度,透明度
  • Texture Sample中包含一张渐变图,由黑到白的条状,也是三通道
    使用深度图除以深度参数,使泡沫只出现边缘渐变

2 深度部分

  • 通过相机位置减去世界位置,得到Pixel depth的向量值,乘以比例得到Screen depth的向量值,两个向量相减,拿到Z的差距,也就是深度了
    设置了深度参数和深度衰减参数

3 计算水流遮罩与FlowMap

  • 我们之前在Lec29的FlowMap中,是去绘制了一张贴图,将其作为FlowMap
    但是我们也可以不用贴图,我们这次只想让水流沿着一个方向流动
    于是在下方的UV Coord Masks中,我们“算”了一个的“贴图”

  • UV Coord Masks中
    拿到TexCoord,进行反转后自乘,得到中间是0.25,两边是0的一个纹理坐标"图",将其乘以两个参数,一个控制宽度上的渐变,一个控制首尾的渐变
    看以下示意图,能了解我们在UV Coord Masks里连线做了什么,比较有意思的

    可以看到参数值越大,渐变范围越小
    所以我们用大参数得到的范围当作边缘的渐变mask,小参数得到的范围当做流水方向的mask
    比如(4000,16)就是左右流的水

  • 拿到小参数的方向,乘以外置参数速度,用作FlowMap函数的FlowMap,得到水流中间快两边慢的mask
    并且注意UV缩放,需要配合物件本身的缩放,乘以外置参数缩放,用作FlowMap函数的UV

  • FlowMap材质函数如下图
    利用FlowMap的值作为UV基本量,时间进行Frac当做添加量与FlowMap相乘
    添加量分为两组,间隔0.5
    这样的得到的数值去加上初始的UV,可以得到两组互相间隔的UV
    利用时间构造锯齿波,对两者进行插值,可以得到看似连续不断的水流动画

  • FlowMap的函数过后,将两组UV采样水的法线图,用锯齿波进行插值,进行外置参数的法线平滑,于是可以连到法线上

  • 得到了两组遮罩后,可以利用起来
    R的mask乘以深度渐变,可以得到水流末端的狭小渐变区域,乘以G的mask水流两边的宽宽的渐变,得到一个完整的水的mask,根据该范围,对折射率进行插值,产生折射

4 渐变映射

右边这一坨其实就是利用深度控制水流的渐变色,以及要不要加泡沫
两组Switch,上面一组是处理颜色,要不要加上泡沫颜色
下面一组是根据深度和水流左右的mask产生透明度遮罩,控制河岸可见,以及要不要加泡沫
高光给了恒定的0.3

5 看一看

创建材质实例后,根据自己的场景调整了些参数

效果还不错

Lec10 水的潮湿与焦散贴花 Water Decals

水会让周围变湿和有焦散,我们会使用decal制作
decal的基础知识,可以到材质课的Lec27中查明

  • 首先是湿润的decal
    新建材质,做如下根节点设置,很节省,它不发光,不做纹理查找

    非常简单,椭圆的mask配合一些简单参数,制作这个mask的计算和之前算水流的mask很像
    10000这个值控制了椭圆四个角上的渐变



    我们还没又加上反射探针,所以目前光照效果可能不太好,但是湿润的效果很好

  • 波光焦散的Decal,和之前材质课的Lec27教的一样,只不过调整了些参数

    进行世界坐标投影,保证三个方向都能得到正确的焦散结果
    而后根据一组法线纹理作出扰动,去扰动两组运动速度不同的焦散纹理,而后进行叠加

Lec11 光,反射,后处理 Lighting, Reflections, and Postprocess

1 灯光烘焙

当涉及到室内光,室外日光的场景时,通常会用方向光就行了

方向光我们通常也只会用它的方向,不会移动它(毕竟只是方向,移动也没用)

不过我们需要决定场景是随着时间变化,还是静态场景。

虽然动态光照非常帅,但是有点难做,场景要不断调整怎么样好看,并且也会更加复杂,开销更高。

所以我们基本用方向光

有这么些烘焙方式

  • static light
    static light只有间接光,没有直接光。光照和阴影烘焙到lightmap;static light通过indirect lighting cache Sample Grid(需要有lightmass importance volume)影响动态物体

  • stationary light
    光源位置不变,但颜色和亮度会变。这是stationary light和static light的区别。后者在运行时,什么都不能改变。另外,运行时改变亮度只影响直接光照。因为间接光照是预先用lightmass烘焙的,不会改变。三种光照可移动性的光照中,stationary光照效率最高,中等易变形,中等性能消耗。
    stationary光照的间接光照和阴影都存储在lightmap中;直接阴影存储在Shadowmap中。这些光照用到Distance Field Shadows,也就是说即使光照的物体lightmap分辨率很低,还是会很清晰。

可以选择方向光为静态,在正午和黄昏之间选一个合适的角度,开始烘焙

烘焙完之后,看到阴影都变成大斑点了,失去了很多细节,但是帧数变高了
这是因为我们之前的动态阴影贴图,比我们现在烘焙的静态光照阴影来的精度大
虽然我们增加精度也可以,只是那样要增加材质消耗的内存了

对于我们的例子,我们使用动态光照好看点

2 反射

在阴影处,我们发现石头很奇怪,泛蓝色

因为这块地方的反射是捕捉天空得到的,但是其实阴影里面天空应该是被遮住的,只是我们只用了天空反射
所以我们可以加上反射探针

反射探针捕捉最准确的地方就是在其中心,所以我们可以准备小的探针放在阴影里,放在相机可能经过的高度
也可以放几个大的

3 后处理


有很多选项,这一部分其实可以百度查查资料,了解每一项的设置
关于我们的例子

  • bloom会把HDR的颜色加模糊,阈值设定了HDR颜色到什么范围才开始Bloom

  • 曝光尝试去计算场景的整体亮度,平衡明暗
    max和min是曝光补偿

  • 色差偏移

  • 镜头耀斑,简单设置

  • 景深(为了性能不设置了)

  • 阴影的饱和度也可以调一下

  • 高光也可以调一下

  • 也可以调AO,可以稍微勾勒一点形状

每个部分其实都可以深入,不过经过以上简单调整,效果如下

4 总览


之后是做瀑布,要建模起来了,开始痛苦了QAQ

以上是关于Building Worlds In Unreal 学习笔记——07-11 岩石树落木灌木绘制/溪水着色器/潮湿与焦散贴花/后处理的主要内容,如果未能解决你的问题,请参考以下文章

Building Worlds In Unreal 学习笔记——29-30 水坑与涟漪

Building Worlds In Unreal 学习笔记——01-02 概览与引入

Building Worlds In Unreal 学习笔记——12-14 瀑布/雾与光/总结与展望

Building Worlds In Unreal 学习笔记——03-06 地形贴图/地形材质/修正重复/近景位移

Building Worlds In Unreal 学习笔记——31-33 天空与雾气/体积云参数与材质分析

Building Worlds In Unreal 学习笔记——31-33 天空与雾气/体积云参数与材质分析