This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
专业(SIM)
UnigineEditor
界面概述
资源工作流程
版本控制
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
材质和着色器
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
创建内容
内容优化
材质
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
注意! 这个版本的文档是过时的,因为它描述了一个较老的SDK版本!请切换到最新SDK版本的文档。
注意! 这个版本的文档描述了一个不再受支持的旧SDK版本!请升级到最新的SDK版本。

粒子系统

粒子系统是一种真正通用的技术,可以创建复杂的移动结构,从而产生动态和“模糊”效果。 这些结构用于模拟火焰、烟雾、爆炸、电力、喷泉、火箭轨迹、聚集、魔法等抽象效果。 所有这些效果都很难使用传统的刚性对象来重现:粒子不是由一组原始表面元素表示,而是由形成粒子图元体积的点质量表示。 另一个显着特征是粒子不是静态的——它们不仅可以改变其位置,还可以随着时间改变其形式。

火灾和烟雾模拟利用粒子系统

一个粒子系统包括三个主要实体:

  • 粒子发射器,源排放根据中设置的值 参数排放国。
  • 根据预定义的粒子本身,发出行为后排放
  • 额外的生理效应

另请参阅#

创建粒子#

创建粒子,执行以下步骤:

  1. 在菜单栏,点击Create -> Particle System -> Particles

  2. 粒子对象在世界上的地位。
  3. 指定粒子参数。

排放参数#

粒子发射器的行为通过发射器设置参数。

Clear On Enable 使初始化粒子系统的每次启用。禁用此选项时,将粒子系统恢复之前的状态。
Emitter Enabled 使发射器。
Emitter Sync 使孩子与父母一个粒子系统的同步,即使孩子粒子系统Emitter Enabled选项禁用。
Emitter Shape

的形状体积内生成的粒子:

Point 粒子发出一个单点。
Sphere 粒子随机生成的位置在一个领域有一个指定的 半径。
Cylinder 粒子随机生成的位置在一个汽缸,指定半径 高度。
Box 粒子随机生成的位置在一个多维数据集有一个指定的 宽度(X轴), (Y轴),高度和深度 (Z轴)。
Spark这个发射器产生粒子的碰撞点的父粒子。火花粒子系统应该是一个子节点初始粒子的粒子系统生成。火花发射器可以用来模拟级联的粒子。
Random 粒子表面生成任意父网格。粒子系统应网的一个子节点。在渲染的时候,随机选择网格的顶点生成粒子。
Emitter Size 粒子的大小。字段的数量(无论是半径或边界尺寸)取决于选择 形状。
Particles Type
  • Billboard代表旋转广场camera-oriented飞机。例如,广告牌粒子可用于创建烟。
  • Flat粒子与粒子系统的Z轴垂直。它们是很好的模拟等影响飞机表面的水。
  • Point粒子类似广告牌类型。它们也总是面对镜头,但有固定screen-aligned取向。
  • Length粒子粒子上,可以沿着方向的拉伸运动。Stretching是一个可调节的因素。火花和色斑可以有效地使用这种类型的粒子模拟。
  • 面向Random粒子是方形粒子随机的空间。落叶可以成功地模仿这种类型的粒子。
  • Route粒子可用于创建跟踪移动物体(例如,跟踪船后)。它们是类似于前面的扁平粒子的实现。
  • Chain粒子粒子上,形成一个连续的,视觉上不间断的流动。它们的长度直接取决于产卵率
Sequence Order

粒子系统的渲染顺序,尤其是在创建像射击这样的复杂效果时(带有枪口闪光、烟雾和射击本身,每个效果都使用不同的粒子系统渲染)。 此参数与材质设置中的 渲染顺序 选项非常相似。 但它允许在粒子系统层次结构内部设置渲染序列,以避免将远处镜头的烟雾渲染在前景镜头的火焰之上时出现这种情况。

  • 0 强意味着一个默认排序根据粒子系统的边界框。
  • 粒子与最低 序列号呈现第一和覆盖的粒子与 最高序列号,最后呈现和高于其他粒子。
Emitter Shift 启用这个复选框使发射器产生粒子只有当粒子系统是移动。
Emitter Continuous 使连续粒子发射器的转变。
Texture Atlas

启用这个特性使得如下:反照率的随机图像纹理

注意
使用这个选项, 动画纹理的应该是禁用的。
Texture Atlas Size 大小的纹理地图集。
Random Flip X

翻转随机发射粒子的水平(沿着X轴)。

Random Flip Y

垂直翻转的随机发射粒子(沿着Y轴)。

Warming On Start 使用先前活动的幻象打开和关闭粒子系统初始化。
粒子系统会随着时间的推移而进化,所以在虚拟世界中遇到它之后,系统才会开始逐个粒子地生成,直到整个系统获得预期的外观。 当角色出现在林间空地时,我们会看到火逐渐燃烧。 粒子的热启动可以立即渲染成熟的粒子系统。
热启动的技术实现如下:当粒子系统在相遇时初始化时,其寿命是从第一个粒子的产生到其消失计算的。 之后,粒子系统被视为进化并以这种状态渲染。 计算以 25 fps 的固定帧速率进行,这是正确模拟粒子系统所需的最低速率(另请参阅有关帧速率之间的相关性)。
启用热启动不会对任何粒子系统(大型粒子系统除外)产生任何不利影响。
Max Warming Time (Sec) 粒子系统的最大时间热身。
Spawn Rate 每秒的产卵行为。 的值定义了多少次 特定数量的粒子将在一秒钟了强。例如,值设置为 = 5每秒产生行动。 0 导致任何粒子。
Number Per Spawn 粒子数,同时催生了每次根据Spawn Rate
Spawn Threshold

阈值的粒子数取决于父粒子的速度。
这个参数用于由spark造就另外同步粒子数和random发射器与父粒子系统。

注意
阈值random发射器的功能只有一个粒子系统作为一个父节点。
  • 的价值 0 强,产卵率spark发射器是独立的父粒子系统。
  • 阈值更高,更高的必须是父粒子的速度产生火花。如果不是足够高,只有一些粒子,如果任何。
Limit Per Spawn 每次生成的最大粒子总数。 该参数指定世界上可以同时存在的粒子数量。 也就是说,世界上存在的粒子数量不能超过极限值。 例如,如果每个生成的数量值为10,并且每个生成的限制 值为 5,将发射 5 个粒子。 在先前的粒子存在之前,不会生成任何粒子。
Life Time (Sec) 粒子发射后存在的时间,以秒为单位。该参数还有一个Spread值,用于创建Life Time值的变化,以秒为单位。
Delay T该选项定义了系统初始化和节点初始化之间传递的时间。 如果设置了任何延迟,则父系统开始发射粒子,延迟后,激活子粒子的生成。 如果粒子系统没有子级,则延迟定义粒子发射后的时间。 此参数还具有 Spread 值,该值创建粒子初始化的延迟时间(以秒为单位)。
Period

一代之间的停顿时间周期,以秒计。

  • 如果该值设置为0,粒子的不断产生,没有任何停顿。
  • 如果指定无穷(inf),一代循环后的粒子发射器变得不活跃。

这个参数也有Spread价值创造的各种周期值,以秒计。

Duration

代时间周期,在发射时,以秒计。

  • 价值越高,时间越长时期粒子生成。
  • 值设置为0意味着粒子同时催生了一个无限小的时间间隔(即在一帧)。例如,这个值可以使用当您需要模拟一个粒子枪射击。

这个参数也有Spread价值,这个值创造了多种的时间价值,以秒计。

Spread (+/-) 分布选项引入了额外的相应的调制参数。它代表值的范围,可以随意增加或减少从指定的参数值。

行为后排放#

这组参数定义了粒子发射后:

值设置选项#

大多数参数在这一节中有多个选项,设置一个值:

选择所需的值类型,使用装置按钮。

Depth Sort 深度排序是必需的,如果粒子使用α混合(除了添加剂)。如果未启用,那么基于深度缓冲数据,不透明的物体定位远可以错误地呈现在面前的透明粒子。随深度排序、几何呈现的顺序从后往前 ,这排除了视觉工件。
Emitter Based 启用这个选项使粒子运动以及排放国。
Position 粒子的位置坐标相对于发射极沿着X , Y Z 轴。
Gravity

重力影响粒子沿着X , Y Z 轴。

  • 积极值等于重力向量直接向上。
  • 值等于重力向量直接向下。

粒子系统节点的旋转不影响重力向量。

Direction 方向所有发射粒子运动形成一个流,沿着指定 X , Y Z 轴。
Velocity 粒子运动的速度方向设置
Linear Damping 粒子线 速度随时间的减少。这个参数是用来模拟摩擦介质的粒子的影响。
Angle

在空间粒子取向角,度。
如果角值设置为180度,粒子将面向随机的四面八方。

注意
该选项不可用pointlength类型的粒子。
Rotation Speed

粒子的角速度度每秒。

  • 积极数字粒子顺时针旋转。
  • 数字粒子逆时针旋转。
Radius 半径(半尺寸)的粒子。
Increase In Radius

增量的大小的粒子,在单位每秒。

  • 正数导致粒子在生成后不断增长。例如,烟花在天空中生长和绽放。
  • 负数表示粒子逐渐减少。例如,模仿烟雾在空气中消散。
Screen Size Mode

用于粒子的屏幕尺寸模式。 此模式定义发射粒子的最大最小尺寸是否应相对于屏幕尺寸进行限制(例如,为了避免 如果雪花或雨滴离相机太近,或者随着与相机的距离增加而变得不可见,就会遮挡视图)。 三种模式可供选择:

  • None 最小和最大尺寸的粒子在屏幕上没有限制。
  • Width 屏幕上的最小和最大尺寸的粒子相对于屏幕宽度是有限的。
  • Height 屏幕上的最小和最大尺寸的粒子相对于屏幕高度是有限的。
Screen Min Size

最低屏幕上粒子的大小,为限制单个粒子可以占领最低的部分:

  • 0(最低),粒子大小为零,因此是无形的在屏幕上(占任何空间)。
  • 1(最大),粒子占据整个屏幕。
Screen Max Size

最大屏幕上粒子的大小,为限制单个粒子可以占领最大的部分:

  • 0(最低),粒子大小为零,因此是无形的在屏幕上(占任何空间)。
  • 1(最大)-粒子占据整个屏幕。
Length Stretch

粒子广告牌的拉伸,可用于Length Particles。 当值为0时,长度粒子只是一个方形的广告牌。 增加该值会沿粒子的运动方向拉伸粒子。 结果是通过将拉伸值乘以粒子速度值来计算的。 因此,速度越高,粒子在其运动方向上拉伸得越多,而另一侧保持相同的宽度。

Sparks Length Stretch = 0
Sparks Length Stretch = 0.3
Length Flattening

使 长度粒子 不像通常的广告牌粒子那样面向相机,而是更垂直于 Z 轴。 值为0时,粒子不会被压平。 最大值为1时,粒子在发射时将是平坦的(垂直于Z轴)。

Length Flattening = 0
Length Flattening = 1

交互#

粒子的相互作用仅限于施加以及与外部物体的碰撞。 有两种方法可以检测与外部对象的碰撞:使用 Physics Intersection 参数或 碰撞参数。

注意
不检查粒子与粒子之间的碰撞是碰撞检测是一项昂贵的操作。

Physical Mask 为了使粒子系统与物理节点进行更具选择性的交互,使用physical位掩码 。 该位掩码是为粒子系统设置的。 这些掩码应该至少有一位匹配,否则不会有交互。 遮罩的其他部分可以匹配其他力的遮罩,从而提供对场景集成的完美控制。
Particles Field Mask

位元遮罩与Particles Field交互节点(DeflectorsSpacers)。发射粒子会受到一个Particles Field只有它们的位掩码匹配(至少一位)。

Physical Mass

参与现场动态,在公斤粒子应该有一定的质量。这个值定义的影响强度 物理节点上的粒子流。

注意
Physical Mass参数不会影响其他计算。
  • 与质量的 0 强,粒子的轨迹不受任何外部影响物理力量(导向板工作不管质量)。
  • 质量,重粒子,和更少的 物理节点可以下降流,伸展,或影响。
Restitution

粒子反射障碍的力量。这个选项非常方便模拟一些水的影响,包括溅。力量反弹的效果取决于粒子的返还参数和的值restitution表面碰撞对象的参数集(Properties -> Parameters -> Restitution)或restitution Particles Deflector的价值。

  • 的最小值 0 强,粒子不反弹。
  • 的最大值1 强,粒子的角的角等于它们的反射。
Roughness

粗糙表面的粒子碰撞的一个障碍。它决定了粒子分散在不同的方向或反应均匀定向流动。

  • 的最小值 0 强意味着所有粒子碰撞后的轨迹是相同的。
  • 1的最大价值强意味着粒子将分散在不同的方向和有点尖瘦地。这个角引起的粒子粗糙度也影响 跳跃行为。在接触的粒子Particles Deflector roughness价值也考虑在内。
Collision

启用粒子整个形状的碰撞检测。
如果粒子足够大,此方法比 Intersection 更可取,因为它提供了更高程度的视觉真实感:粒子根据设置的参数做出反应 ,当它们的边或顶点与物体接触时。 碰撞计算成本更高,因此大粒子系统应谨慎使用此选项。

碰撞检测到匹配collision位掩码。

Physics Intersection

能够检测与粒子的物理交叉点。 例如,物理相交可用于检测生成的粒子与物理形状和物体或静态对撞机表面的碰撞,以确保正确的交互,或者作为检测模拟地面车辆的光线投射轮碰撞的快速方法,或者检查 如果可破坏的物体或玩家被射弹击中。

物理交叉检测匹配Physics Intersection位掩码。

Destroy In Collision/Intersection 切换开关剔除的粒子,已经经历了碰撞或十字路口。

纹理渲染#

粒子可以渲染为程序纹理,以供 正交贴花字段高度。 例如,此功能可用于创建船舶尾流效果或油溅效果。

以下设置:

Rendering 使粒子渲染程序结构。
Positioning

定义了定位模式用于子节点使用过程纹理(贴花或字段),粒子系统的呈现。可用以下值:

  • Manual 子贴花/字段节点的位置可以手动更改
  • Auto 使用过程纹理的子贴花/场节点的位置由粒子系统的位置自动定义,不能手动更改
注意
仅当Procedural Parenting设置为Children时生效。
Parenting

定义了粒子系统和Decal / Field节点之间的关系,该节点使用粒子系统渲染到的过程纹理:

  • Parent 贴花/字段节点的父粒子系统
  • Children 贴花/字段节点是粒子系统的子节点
Resolution

指定分辨率的程序结构,粒子渲染。

  • 128x128
  • 256x256
  • 512x512
  • 1024x1024
  • 2048x2048
  • 4096x4096
  • 8192x8192
  • 自定义激活附加字段用于指定一个自定义的决议。

额外的生理效应#

更复杂的变化进一步运动粒子可能通过应用执行额外的生理效应。它们影响了粒子流的方向或相反的转移。三个一般类型的影响可以:

没有限制数量的额外的生理效应应用于一个粒子系统,它们可以自由地重叠,使构成复杂轨迹容易和快速。

#

您可以对球形体积内的粒子施加物理力,以影响它们的运动和行为。为此,只需添加Physical Force节点,调整必要的设置并设置Physical Mask以选择性地启用交互。

注意
默认情况下,粒子有质量等于零,为了受Physical Force粒子应该有一个非零质量,所以别忘了设置Physical Mass参数。

噪音#

您可以应用物理噪声,并在长方体体积内添加基于体积噪声纹理的分布流。为此,只需添加Physical Noise节点,调整必要的设置并设置 Physical Mask 以选择性地启用交互。

注意
默认情况下,粒子有质量等于零,为了受Physical Noise粒子应该有一个非零质量,所以别忘了设置Physical Mass参数。

导向板#

有时需要为粒子设置障碍物,使它们通过弹跳或沿着某个表面滑动来改变轨迹。 为此,您可以使用 Particles Deflector 节点,这是一个没有视觉表示的表面场,但与粒子系统进行物理交互,而其他对象不受影响。 您可以通过Particles Field蒙版控制粒子和偏转器之间的交互:如果偏转器与粒子系统生成的粒子都具有匹配的Particles Field蒙版(至少一个比特)。

关于Particles Deflector的更多信息,请参阅本文

粒子节点层次结构#

创建复杂的影响,有必要对所有粒子系统的同步。设置一个粒子系统作为一个家长节点下面的结果:

  • 所有作为节点的粒子系统都相对于其父粒子系统同步。 如果子系统有自己的子系统,它们仍然与层次结构中最高的主父系统同步。
  • 创建新的子粒子系统时,应通过禁用然后再次启用发射器(Node 选项卡 → Enabled框)。 此时,每个子系统都用其发射器参数进行初始化(例如生成持续时间生成暂停的时期和初始化的延迟)。
  • 禁用或启用父发射器Node选项卡 → Enabled框)会影响所有子发射器 粒子系统:它们同步停止或开始发射粒子(发射的粒子仍然有效)。
  • 禁用或启用父节点Node选项卡 → Enabled框)也会影响所有子节点:层次结构中的所有粒子系统都被关闭和打开,并保持与禁用时相同的状态。

同步多个粒子系统#

同步几个粒子系统,例如,创建一个拍摄效果(有三个粒子系统:枪口flash,烟雾和子弹),你可以做以下几点:

  1. 创建父粒子系统,将被用作一个假,纯粹用于同步(你甚至可以禁用它的表面)。Duration设置中的时间间隔应该涵盖子粒子系统的所有持续间隔和延迟间隔(如果有的话)。其他参数(Spawn Rate 等)并不重要。

  2. 添加子粒子系统。它们可以有时间所需的时间(但应该小于父之一)。例如,同步所有子粒子系统,只产生一个粒子,可以设置如下:

优化仿真#

更新每一帧一个巨大数量的对象位于远离摄像机很难区分或观察作为一个质量是一种资源浪费。

为了提高性能和避免过度的负载,粒子系统模拟可以使用减少的帧数集进行更新。当粒子系统超出Update Distance Limit指定的区域时,粒子停止更新并静态冻结。

下面给出的组帧速率使您能够指定粒子模拟频率应该更新粒子系统是可见的,当仅能看到它的影子,或者当它是不可见的。

Parameters 选项卡 → Periodic Update 部分
FPS When Object Is Rendered To Viewport 对象被渲染到视窗时的更新速率值。
FPS When Only Object Shadows Are Rendered 当对象本身在视锥体之外,并且只有它的阴影被渲染到视口时,更新速率值。
FPS When Object Is Not Rendered At All 当对象和它的阴影都没有渲染到视窗时的更新速率值。
Update Distance Limit 到相机的距离,物体应该被更新到这个距离。
注意
这些值不是固定的,可以调节发动机在任何时间,以确保最佳的性能。

启用这个特性与默认设置确保最佳性能,可以调整逐对象式UnigineEditor或在运行时通过API。

例如,如果您的项目包含不可见的粒子系统(例如,使用 Viewport mask)以及附加到其的一些逻辑 更新(例如,在与对象碰撞时生成一些可见粒子)此逻辑将不起作用,因为粒子系统可能会以降低的速率更新,或者可能根本不更新。 要启用更新此类对象(无论其可见性如何),您可以将Update Distance Limit及其相应的更新速率值设置为infinity

基于网格粒子#

可以创建基于网格粒子系统。为此,Mesh Cluster应该添加一个子节点的粒子系统(ObjectParticles)。在那之后,网格是由发射器自动产生的。

注意
改变Viewport粒子的位掩码,如果你不想一起产卵网格。

网基于集群的粒子
最新更新: 2023-07-06
Build: ()