Building Worlds In Unreal 学习笔记——07-11 岩石树落木灌木绘制/溪水着色器/潮湿与焦散贴花/后处理
Posted 清清!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Building Worlds In Unreal 学习笔记——07-11 岩石树落木灌木绘制/溪水着色器/潮湿与焦散贴花/后处理相关的知识,希望对你有一定的参考价值。
Building Worlds In Unreal 学习笔记——07-11 岩石树落木灌木绘制/溪水着色器/潮湿与焦散贴花/后处理
- Lec07 岩石与树 Rocks and Trees
- Lec08 落木与灌木 Foliage & Undergrowth
- Lec 09 溪水着色器 Stream Water Shader
- Lec10 水的潮湿与焦散贴花 Water Decals
- Lec11 光,反射,后处理 Lighting, Reflections, and Postprocess
本系列学习资料来源,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 地形贴图/地形材质/修正重复/近景位移