水实例

虚幻引擎4内包含的粒子特效实例之水特效概述。

Windows
MacOS
Linux

title_Water.png

On this page

以下粒子系统是我们为此实例所创建的水特效。 我们鼓励您在Cascade中打开它以查看每种特效是如何进行组合的。

如需获得更多关于Cascade和粒子系统的信息,请查阅粒子系统文件

瀑布

WaterfallSection.png

内容浏览器位置: Game/Effects/Particles/Water/P_WaterFall

瀑布特效组合了多个材质和粒子系统设置以模拟水冲击岩层的效果。 此特效中特别重要的一点是,相机对齐非常重要;玩家不会直接走到水中,但是他们会从一个较近的距离处观察瀑布。

因为这些粒子使用了半透明材质,它们会造成过度描画性能消耗 - 这表示许多瀑布的水流必须在彼此的上方进行渲染。 不过,由于这些水流是GPU平面粒子,实际 模拟 (更新)的性能消耗非常低,因为这些消耗被传递到GPU进行处理。 通过这种方法,比起仅仅使用材质和静态网格物体来创建特效来说,我们可以获得更为复杂和具有互动性的行为。 但是,我们可以组合运用上述两种技巧,让特效有更多的变化。

碰撞

CollisionWithRocks.png ModuleStack.png

当瀑布水冲下岩石表面时,您将会注意到水花飞溅并与岩石表面产生碰撞。 这是通过碰撞(景深)操作符来完成的,它仅对GPU平面粒子可用。 它使用景深G-Buffer来计算碰撞表面并仅仅产生最小的系统性能消耗。

粒子颜色

注意GPU平面粒子 支持动态参数,它一般被用来从粒子系统发送数据到材质中。 由于这个原因,我们使用了一些技巧,使用了材质中的粒子颜色节点。 一般来说,此节点让我们可以随着瀑布水流的下落而变更粒子的颜色,这是通过在其生命周期内对颜色和alpha值进行动画处理来完成的。 但是此处,我们使用红色,绿色,蓝色和Alpha (RGBA)数据来驱动更多内容。 由于不需要对瀑布水流实际变更颜色(水是无色的),我们按以下方式使用粒子颜色数据:

  • 红色 - 驱动水的折射率,或者说它偏移光照的程度。

  • 绿色 - 驱动实际颜色。 这表示绿色通道为颜色驱动了所有的RGB数据,从而得到了灰度的结果。

  • Alpha - 驱动水的不透明度。

如果您迁出材质(名称为_M_WaterDrop_SubUV_),您可以看到粒子颜色节点如所描述的那样驱动这些值。

点击以查看完整尺寸图片。

如果您在Cascade中打开P_Waterfall粒子系统,要特别关注缩放颜色/生命周期模块。 对生命周期的前一半来说,颜色被动画处理为非常亮的状态(大于1.0),而当alpha从黑变白时,它逐渐衰减到黑色。 最终结果为如下图所示的清晰的淡入和淡出。

ColorAlphaAnimated.png

水花四溅和涟漪效果

SplashRipple.png

内容浏览器位置: /Game/Effects/Particles/Water/P_Drips_Splash_Ripples

随着瀑布的水流冲击水面,粒子特效同时处理滴水和飞溅/涟漪效果。 这是通过粒子系统内一系列不同的发射器来完成的。 一系列发射器处理瀑布的特效,另一个发射器模拟随着瀑布水流冲击下方的水池时向上的水花溅出,同时还有最终类型的发射器处理沿水流表面传播开来的涟漪。 这表示此特效可被放置于任意固定水面并能获得真实的效果。

粒子系统同时使用带光照的半透明材质,它使用Particle Color(粒子颜色)节点来驱动不透明度。 这使得粒子系统能通过缩放颜色/生命周期模块来控制其不透明度。 本例中,此alpha值进行了动画处理,以使得在粒子生命周期的起始位置附近几乎为不透明,这表示它能接受光照影响的程度很高。

FallingWaterDrops.png

在以上屏幕截图中,请注意许多瀑布的水流粒子在近图像顶部位置处为亮白色。 刚看起来,这似乎是一种自然的现象,因为在粒子位置附近存在光溢出的白色高亮。 但是,这实际上仅仅是通过将粒子在其生命周期内的该位置处设置为 更高的不透明度 才实现的,这样也会使用更多的关卡光照。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback