GPUSprites类型数据

GPUSprite类型数据模块支持在GPU上模拟粒子,能高效地模拟和渲染数十万颗粒子。

Windows
MacOS
Linux

GPUSprites.png

GPUSprite 类型数据模块支持在GPU上模拟粒子。传统CPU系统允许在一帧中出现数千颗粒子。GPU模拟能高效地模拟和渲染数十万颗粒子。

GPU粒子不支持传统CPU粒子的所有功能,但它们拥有一些独特功能,可使效率得到极大提高。粒子发射仍在CPU上发生,以确定生成粒子的位置、时间和数量。CPU也可使用传统CPU粒子方法对大小和速度等初始属性进行指定。

将"GPU Sprites"类型数据模块添加至发射器,在级联中创造出GPU粒子sprite。在级联中创作其他特效后,在发射器上添加并编辑模块,对模拟参数进行修改。模拟随属性变化实时更新。

属性

属性

描述

光束

相机动态模糊量(Camera Motion Blur Amount)

基于摄像机动态模糊设置sprites的拉伸程度。

支持属性

GPU粒子支持以下属性:

初始位置(Initial Location):
初始速度(Initial Velocity):
加速度(Acceleration):
阻力(Drag):
生命周期(Lifetime):
颜色(Color):
大小(Size):
旋转(Rotation)
自转速率(RotationRate):
子图像索引(SubImageIndex):

重要概念

在场景中使用GPU粒子时,对下列关键概念的理解至关重要。

运动

粒子运动以牛顿动态力学为基准。在每个时间步长中,粒子位置和速度基于其当前位置、当前速度、恒加速度和阻力进行整合。

GPU粒子虽然在细节上和传统CPU粒子不同,但其仍然支持轨道运动。从概念上而言,粒子移动犹如sprite围绕粒子实际位置(一个变量将使此位置发生偏移)进行轨道运动。可利用轨道向粒子添加额外的细节运动。

矢量场

除效率之外,GPU粒子最有趣的特性是向量场。向量场是一个由影响粒子运动的向量组成的统一网格。向量场作为Actor放置在场景中(整体向量场),可以像任何其他Actor一样进行平移、旋转和缩放。它们是动态的,可以在任何时候移动。场也可以放置在级联中(局部向量场),限制其对与其相关联的发射器的影响。当粒子进入向量场的边界时,粒子的运动将受到向量场的影响,当粒子离开边界时,向量场的影响将消失。

默认情况下,向量场会对其中的粒子施力。向量场还有一个"紧密度"参数。此参数控制粒子如何直接跟随场中的向量。当紧密度设置为1时,粒子直接从场中读取其速度,从而准确地跟随场。

静态向量场是向量网格永不改变的场。这些场可以从Maya导出并作为体积纹理导入。静态场资源占用低,可以用来向粒子添加有趣的运动,特别是通过对场本身的运动设置动画。

此外,还可以从二维图像重新构建向量场。在这种情况下,可以导入一个非常类似于法线贴图的图像,通过挤压它或将其围绕体积旋转来重新构建体积纹理。在此重新构建的基础上,可以添加一个静态向量场,引入一些噪点和随机性。此外,可以通过在图谱纹理中存储单独的帧来对2D图像设置动画。这样做让您可以离线执行流体模拟,并以极低的成本实时重新构建运动。

性能

GPU粒子的CPU开销主要视粒子的生成而定。粒子以传统CPU粒子的相同方式在CPU上生成,所以性能特征十分相似。

粒子的GPU开销主要视粒子的数量而定。少数功能在现有开销外增加了GPU粒子的额外开销。大部分GPU开销来自排序和渲染。排序为可选项,建议只在粒子发射器必需时启用。渲染通常视填充率而定。缩小粒子大小、减少粒子材质上的指令数量、减少粒子总量均能降低开销。粒子极小时,渲染主要视顶点开销而定。在此情况下,减少粒子数量是降低开销的唯一方法。

模拟开销将随与发射器重叠的矢量场的数量而变化。因此,减少重叠的矢量场数量有助于降低模拟开销。

移动设备GPU sprite

GPUSprites_&_Vector_Fields.png

移动设备现已支持GPU粒子和矢量场!然而,此功能需要移动设备支持带MRT的32位浮点渲染目标,所以其只能在以下移动设备上使用。

制造厂商

设备等级

设备名称

Apple

A8+

iPhone 6、iPad Air 2、iPad Mini 4及更新机型。

Android

带Adreno 4xx和Mali-T7xx GPU的6.0设备

Galaxy Note 4、Note 5、S6、S7、Nexus 6P等。

将以下类型数据添加到粒子后,即可让粒子使用此功能。

GPUSprites_VFXC_Setup.png

  • GPU Sprites 类型数据

  • Global Vector Fields 类型数据

此外还需要将一个 矢量域 添加到粒子系统或放置在关卡中。

移动设备GPU sprite的限制

在移动设备上使用GPU sprite时,需要牢记以下限制。

  • 矢量域交互: 和PC上的矢量域一样,移动设备GPU spirte同时最多只能受4个矢量域所影响。分为1个本地矢量域和最多3个放置在场景中的矢量域。

  • GPU粒子碰撞: 移动GPU sprite 支持任意碰撞选项(如与场景或网格体距离场碰撞),因为移动设备并不支持。

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