UE4.26 水插件学习笔记

Diving into the Depths

因为项目需要,使用了UE4.26自带的水插件,通过观看官方视频进行学习并写下学习笔记,特此分享。

视频链接:https://www.bilibili.com/video/BV11Q4y197Rn

Intro and Basics

如果创建的海洋与地形的衔接过于生硬,可以将falloff setting中的falloff mode从angle改成width。

在河流中可以通过water当中的

depth 深度

river width 宽度

velocity 流速

来调整河流的样子。

Controlling Water

Common properties and features

Terrain:决定地形中样条的影响程度和下沉度。

Rendering中有water material和underwater post process material

分别用来调整水的材质和摄像机进入水下后的后期处理材质。

Wave Attenuation Water Depth波衰减水深:衡量了波浪靠近海岸的时候抚平海浪所需要的数值。它会根据水面到水底的深度来调整浪花的大小。

Wave source当中可以调节波浪的数量,波长的上限和下限,即波的大小。以及振幅的上限和下限,即波在纵向的位移大小。

Dominant Wind Angle主风向设置

Direction Angular Spread方向角展度

如果减少方向角展读的数值所有的浪花就都会向同一个方向运动(大型海啸)

Steepness用来调整陡度

How it works beneath the surface

it’s using landmass, which is a plugin been used to change the landscape and height map by using blueprint and spline.

如果把一个ocean actor或类似的组件拉到场景当中的时候,会在背景中生成两个附加的actor。

一个是Landscape_WaterBrushManager,用来生成水体网格体。原理是这个actor在关卡当中捕捉场景信息,然后将信息传输到即将生成的水体网格体上。它要捕捉地形的高度图,以及一些其它数据,然后根据这些数据生成渲染目标。(可以在render targets当中看见,所有的都是它自己生成的)然后再使用渲染目标中存储的信息。

另一个是WaterMeshActor。Water Mesh, which is the actual water surface itself.因为WaterBodyOcean不是水面,它只告诉WaterBrushManager它在干什么以及它想干什么。接着,WaterBrushManager告诉WaterMeshActor如何对自己渲染。因此WaterMeshActor才是真正的水面。这是一种程序性网格体,它是因各种水体,包括河流等等而生成的。如果把视图模式改成笔刷线框,可以看见蓝色的网格体就是WaterMeshActor。它能自动辨别河流流向和湖的位置。它把所有的东西都包裹在内,从而成为一个庞大统一的网格体。这就是水体之间无缝衔接的原因。这种结合是material层面上的结合。

如果想要调整远处的水,可以在WaterMeshActor当中的FarDistance来进行调整。

WaterMeshActor不止是一个巨大的网格体,实际上它可以分成若干水体。网格体本身也有LOD设置,它在远处简化自己。

可以通过r.Water_WaterMesh.ShowTileBounds 1来显示水的网格体。它将网格体划分成小方块,从而控制水体。

Single Layer Water Material

水表面的材质基于两样东西,一样是真实材质,也就是编辑器当中的材质,可以从water内容当中的material文件夹当中。WaterSurface文件夹。

Water_Material就是默认的水材质。(可以把它贴在一个mesh上面看看,挺有趣的)

这个材质的着色模型用的是单层水面(Single Layer Water),这项功能提供了大量额外的着色效果。

如果将着色模型设置成单层水面的话,就会新产生一个结点(Single Layer Water Material)。

水材质的混合模型是不透明或者已遮罩的。如果使用已遮罩,才可以在水中开一个洞。

但是我们一般是选择不透明。因为视图当中的水的表面看起来像是半透明的,但是其实是材质根据水底生成的一个不透明的表面涂层。这样就避免了波浪之间的排序问题。

Going Deeper

Far Water

WaterMeshActor当中的Far Distance,可以调整材质和距离

Buoyancy component

BP_BuoyancyExample,浮力组件。能让物体在水中漂浮。

如果将这个组件放到河流中,它就能识别河的流速和流向来自己移动。

Making things float via WPO

如果只想做一个漂浮的视觉效果,而不是真正在漂浮,可以使用材质来进行制作。制作方法见视频24min。

Floating debris with Niagara

25min

Holes in the surface

如果想在水面上创建一个建筑,然后可以抵达水面以下,有一个

Water Body Exclusion Volume

上一篇:Gromacs制作能量收敛的水分子层


下一篇:Biology 06: Metabolism and Nutrition