Physical Water Surface 文档翻译
https://wiki.unrealengine.com/Physical_Water_Surface
Overview
Physical Water Surface(以下简称PWS)是一个写实、易用的水面材质和浮力系统。PWS工作于盒子之上,自带波浪数据库、可以根据不同的风速(wind speed)、风区长度(fetch length)组合出不同的波浪效果。它有以下特点:
真实水动效果:
就立刻就立刻
拉进来看见
Blueprint Documentation
确保已启用把所有蓝图编译成C++的Nativize Blueprint Assets选项。
WaterSettings Blueprint
WaterSettings蓝图管理海浪特性,自动给水面材质实例写入材质参数。应该在关卡里始终保有一个WaterSettings蓝图。
Wind Speed:选择你需要的风速(单位:米每秒),海浪会自动实现相应的改变。可选的值有:1,2,3,4,5,6,7,10,15,20,25,30和35m/s。
Fetch Length:选择你需要的吹程距(单位:千米),海浪会自动实现相应的改变。可选的值有:50,100,300,500,750,1000和1500千米。
Random Phase Seed:水流运动的随机种子。改变这个值可以在游戏开始时获取一个不同的随机水流运动。
WaterPlane Blueprint
你可以向关卡中添加一个或多个WaterPlane蓝图。WaterSettings蓝图会自动找到它们(指WaterPlane蓝图们)并将Gerstner Wave(格斯特纳波)材质参数写入WaterPlanes的动态材质实例。
Material Instance:你可以通过这个参数修改使用的水面材质实例,默认的是WaterInstanceShiny。
RefreshMaterial:点击这里的复选框将使得蓝图的构建脚本执行一次。用来解决在某些情况下水面材质没有更新的问题。
Follow Camera:开启或关闭无限海洋系统。如果勾选,水平面将被平移、缩放以实现一个无限海洋的效果。对于湖水或者其他小尺寸水域来说,不勾选这一项、去创建一个贴合湖水岸边形状的水平面网格(mesh),将会更好。
Height Zoom Factor:在无限海洋系统模式下,水平面将随着相机的升高而延展。这一参数影响水平面延展的速度。
MinimumHeight:在无限海洋系统中假设的一个相机在水面之上的(假想的)最小高度。以防止当相机距离非常接近水面时,水平面缩小得太凶残。
Buoyancy Component Blueprint
把这个组件添加到任何静态网格(Static Mesh)或骨架网格(Skeletal Mesh)中,以使得它(只被添加了该组件的Mesh)能在WaterPlane蓝图中漂浮起来。切记:设置网格(Mesh)的移动性(Mobility)为可移动(Movable)!
Buoyancy Mode:在单点模式(Single Point)下,漂浮物将被固定到水面上的一个点。距离和旋转将直接从坐标系中获取,并通过Gerstner等式正常计算。这种模式对于小物体来说看起来不错,相应地,这种模式的计算比较节省资源。在自动点(Auto Points)模式下,进行了一次物理模拟(Physics Simulation)。物体上会自动生成一些点,这些点的浮力将被计算并且应用到物体上。浮力的大小取决于沉浸在水中的那些点的深度。与浮力反向的重力会被引擎自动应用。在手动点(Manual Points)模式下,你可以自己定义那些浮力点。并从详细面板(Details panel)中手动输入这些点的坐标、或者在另一个蓝图中设置这些点的坐标。
注意:接下来的设置参数仅在自动点(Auto Points)和手动点(Manual Points)模式下有效:
Points Shape:定义自动生成的点的形状为矩形(rectangular)或椭圆形(elliptical)。点的生成会自动考虑到网格(mesh)的尺寸。
Points Scale:通过这个参数(默认值为0.8),你可以缩放里面自动生成的点,这样一来,那些点就不会直接位于物体表面了。对于一个有曲面船体的小船来说,这个参数通常需要被设置为小于1的值,以防止浮力点生成在了船体之外。
N Points X和N points Y:生成在X(径向)方向和Y(切向)方向上的点的数量。
Float Height:实现一个点生成位置的Z轴上的偏离。
Points:在Auto Points模式下,点的坐标将被自动设置。在Manual Points模式下,你需要手动设置它们。输入点的对象本地坐标系(local object space)的坐标值。可以从详细面板(Details panel)中输入或者从另一个蓝图中设置这些值。
Draw Debug:开启调试可视化。生成的点被可视化为点,箭头的长短代表了浮力的大小。
N Points Per Frame:通过这个参数,你可以限制每一帧中使用Gerstner等式更新的点的数量。对于剩下的点,它们的深度将根据上次已知深度值线性外推得到,这将节省计算资源。如果要让所有的点在每一帧通过Gerstner等式更新,就把该参数设置为(N Points X)*(N Points Y)。
N Frames Pause:如果该参数设置为1,那么使用Gerstner计算更新点将被每隔一帧执行一次,如果设置为2,那么僵每隔两帧执行一次,以此类推。如果关闭暂停功能,就把该参数设置为0。
Float Factor:这个参数改变漂浮物浸入水中的深度。
Linear Damping和Angular Damping:阻尼(damping)通常被用来微调超大物体和超小物体的漂浮效果。
Drag Multiplier:漂浮物也会有一个微小的水平位移,该位移取决于漂浮物当地的水平水速。该参数可以用来影响水平方向的推力的效果。
Enable Buoyancy:完全启用或禁用浮力。为节省CPU资源,当物体不可见或者距离相机太远时禁用浮力是个不错的选择。如果你不想完全禁用浮力,可以把那些物体的浮力模式(Buoyancy Mode)改为单点模式(Single Point),这样也可以节省一些CPU资源。
Points Offset:使用该二维向量(Vector2D)来给自动产生的浮力点一个水平偏移量。
Material Documentation
请忽略所有以R或者W开头的向量参数,他们会被WaterSettings蓝图自动设置。
FoamNoise:如果勾选。泡沫纹理(Foam Texture)将会随机调整,以使得不会重复纹理。只有当你需要这样做的时候才勾选它,因为这需要一定的资源。
GerstnerWaves:你可以禁用Gerstner波,调试时很有用。
NoiseInvert:转换调整泡沫的噪音,调试时很有用。
DetailNormalMapMultiplier:缩放细节法线贴图(detail normal map)的UVs。
DetailNormalSpeed:改变细节法线贴图动画的速度。
DetailNormalStrength:修改细节法线贴图的强度。设置为0.0可以禁用细节法线贴图,获得一个平滑的水面。
FoamBlendRadius:泡沫淡出的距离。
FoamIntensity:影响泡沫的可见性,设置为0.0可以禁用泡沫。
FoamMultiplier:缩放泡沫纹理(Foam Texture)的UVs。
FoamSpeed:改变泡沫动画的速度。
FresnelExponent:基础颜色(Base Color)的菲涅尔指数节点。
Metallic:金属材质输入。
NoiseRotation:对于泡沫调整,两个泡沫纹理被缩放、旋转、混合。该参数设置了旋转角(取值范围0~1)。
NoiseSize:影响泡沫纹理调整噪声的尺寸。
RoughnessBlendRadius:粗糙度发生变化的距离。
RoughnessMax和RoughnessMin:泡沫比水有更高的粗糙度,使用这俩参数可以设置粗糙度的最大值和最小值。
SecondTextureScale:对泡沫调整,两个泡沫纹理被缩放、旋转、混合,该参数定义了第二个泡沫纹理的缩放。
ColorBright和ColorDark:修改水面的基础颜色(Base Color)。
FarFoamColor:当泡沫淡出(Blend out)后将用该颜色代替。
标签:
相关文章
-
无相关信息