粒子

使用粒子系统,您可以使用精灵、3D 模型或图像来创建难以用传统渲染技术复制的效果。这包括混沌系统、自然现象或由化学反应引起的过程。例如,您可以模拟火焰、烟雾、火花、爆炸、流动的水、雾、雪、星辰和星系。

Qt Design Studio 粒子系统包含以下主要类型的组件

在将 QtQuick3D.Particles3D 模块添加到您的项目中之后,就可以在 组件 > QtQuick3D Particles3D 中找到预设的粒子组件模板效果

"3D Particles"

粒子组件

当您将一个 粒子系统 组件添加到场景中时,Qt Design Studio 会自动为您添加 精灵粒子发射器矢量方向 组件的实例。

"Particle System in Navigator"

精灵粒子 是一个视觉上的 2D 纹理 粒子。要使用 3D 模型 粒子,请将 模型粒子 组件的实例添加到粒子系统中。在 属性 > 粒子 > 最大数量 中定义要使用的粒子数量非常重要,这样可以分配最佳缓冲区大小。您还可以指定粒子的颜色和不透明度,以及它们淡入淡出的速度。

《发射器》组件可以发射精灵或模型粒子。您可以为粒子指定形状和发射区域。使用粒子大小和旋转的变化可以获得更自然的结果。此外,定义发射粒子的寿命和初始速度方向。

通常,影响器用于使粒子运动更有趣。例如,可以添加一个《重力》组件实例以模拟 falling objects,添加一个《漫游》组件实例以模拟跟随 wave curves 的 flying objects,或添加一个《点旋转器》组件实例来模拟 windy weather。

下表列出了预设的粒子组件。

图标名称用途
吸引器吸引粒子向特定点。
动态爆发以动态爆发形式发射粒子。对于移动的发射器,请使用动态爆发。
爆发发射以爆发形式发射粒子。
发射器发射逻辑粒子。
重力将粒子加速到在指定方向上指定大小的矢量。
线形粒子创建线形精灵粒子。
模型混合粒子将粒子效果与《模型》组件实例混合。
模型粒子创建使用《模型》组件实例的粒子。
模型形状为发射器和影响器提供模型中的 3D 形状。
粒子形状为发射器和影响器提供 3D 形状。
粒子系统创建包含粒子、发射器和影响器组件的粒子系统。
点旋转器围绕支点旋转粒子。
排斥器从其位置排斥粒子。
缩放影响器根据粒子的寿命和其他参数缩放粒子。
精灵粒子创建使用 2D 精灵纹理的粒子。
精灵序列为《精灵粒子》组件实例提供图像序列功能。
目标方向指定指向目标位置的方向。
尾迹发射器从其他粒子中发射逻辑粒子。
矢量方向指定指向目标方向的方向。
漫游将随机 wave curves 应用到粒子。

粒子模板

粒子模板是一组预设的粒子组件,您可以使用它以方便的方式创建特定的粒子效果。

下表列出了粒子模板及其组件。

模板组件
动画精灵粒子系统
  • 粒子发射器
    • 精灵粒子
    • 精灵序列
    • 纹理
  • 矢量方向
吸引器粒子系统
  • 粒子发射器
    • 精灵粒子
    • 矢量方向
  • 粒子吸引器
爆发粒子系统
  • 粒子发射器
    • 精灵粒子
    • 矢量方向
    • 爆发发射
模型混合粒子系统
  • 粒子发射器
    • 节点
    • 模型混合粒子
    • 粒子发射器
      • 矢量方向
模型形状粒子系统
  • 粒子发射器
    • 精灵粒子
      • 矢量方向
  • 粒子模型形状
粒子尾迹粒子系统
  • 尾迹发射器
    • 矢量方向
    • 精灵粒子
  • 粒子发射器
    • 矢量方向
    • 精灵粒子
精灵粒子系统
  • 精灵发射器
    • 精灵粒子
    • 矢量方向
漫游粒子系统
  • 精灵发射器
    • 精灵粒子
      • 纹理
    • 漫游
    • 节点

粒子效果

粒子效果是一组预先制作的效果,您可以使用它以方便的方式创建,例如,火、雨或雾。

以下粒子效果可用

  • 云层
  • 灰尘
  • 排气
  • 大雨
  • 重胎喷溅
  • 小雨
  • 轻胎喷溅
  • 雨雾
  • 蒸汽

添加粒子系统

添加粒子系统的推荐方法是使用一个 粒子模板,然后根据您的用例添加或删除粒子组件。

例如,要添加一个发射精灵粒子的粒子系统

  • Qt Quick 3D 粒子系统模板 中的 组件,将 精灵 拖动到 导航器 中的场景组件。您也可以将其拖到 3D 视图中。

性能考量

粒子在桌面、移动设备和嵌入式设备上均可使用。然而,除了在屏幕上渲染尽可能多的粒子元素外,扩展到不同用例、渲染质量、与其他UI元素的集成也很重要。

目前,渲染在GPU上运行,而粒子系统逻辑在CPU上运行。然而,“无状态粒子系统”允许您(如果认为这样有益)将系统逻辑移动到GPU。最初的测量表明,CPU和GPU之间的系统平衡得相当好。无状态系统还允许通过使用时间轴来动画化粒子。模型粒子使用实例渲染来提升性能。因此,OpenGL ES 2.0不足以实现高效的渲染,至少需要OpenGL ES 3.0、Vulkan或其他现代后端。

为了更具体地了解实际性能,下面的视频展示了在不同Android设备上运行的粒子测试床应用程序。这些设备和它们的芯片组和GPU可以被认为是低端到中端的产品,证明了粒子也可以在性价比较高的硬件上表现良好。

粒子系统教程

在特定Qt许可下可用。
了解更多。