2022年9月28日

全新粒子系统编辑器

在本次新版本中,Evergine 改进了其粒子系统:从现在起,它将作为一种资产并拥有专属编辑器,从而简化并辅助处理同一粒子系统的多个实例时的开发工作。这个新的粒子系统编辑器包含了一些用于粒子创建的有趣工具,同时也是未来诸多新功能的基础。

新的粒子系统工作流?

Evergine 的先前版本将粒子系统作为一组组件来处理。我们曾拥有 ParticleSystem 和 ParticleSystemRenderer 组件(力组件除外)。虽然这相比我们旧的 WaveEngine 粒子系统有了很大改进,但我们意识到,在涉及同一粒子系统多个实例的复杂场景中,我们不想过度依赖预制件。我们还意识到,当能够轻松地对同一类型的所有粒子系统进行分组时,我们可以更好地进行优化,因此我们按照下图所示更改了工作流。

现在开发者:

  • 创建一个 ParticleSystem 资产。
  • 在新的粒子系统编辑器中对其进行编辑。
  • 使用 ParticlesComponent 和 ParticlesRenderer 组件创建一个实体,将其放置到场景中。

粒子系统创建

创建新的粒子系统资产与从 Evergine Studio 创建其他资产类似。只需在资产详情面板中右键单击并选择 创建粒子系统。

这将在 Evergine 项目中创建一个新资产,可以打开进行编辑。

粒子系统编辑

单击粒子系统资产将打开其编辑器,显示以下 4 个不同的区域:

粒子视口

主区域根据粒子系统的参数和一些视口配置显示其模拟效果。它还显示:

  • 发射器形状,显示粒子从何处发射。
  • 如果粒子系统使用 entity shape 发射器,将显示一个茶壶用于方向参考。
  • 用于缩放方向参考的网格,可以禁用。

粒子属性

这是配置粒子系统的区域。

所有属性被分组到不同的部分,以便于编辑:

  • 粒子材质 设置粒子渲染的属性(其纹理、渲染层和采样器状态)。
  • 常规 将所有控制最重要方面的主要属性分组,例如最大粒子数、初始颜色、速度等。
  • 形状 具有控制粒子发射位置和方向的属性。它允许从一组不同的形状中进行选择:
    • 点
    • 球体
    • 盒体
    • 圆
    • 实体
    • 边缘
  • 生成 管理粒子的创建数量和时机。可选模式如下:
    • 常规 速率 发射(每秒粒子数)。
    • 爆发 一次性同时发射所有粒子(爆炸效果!!!!)
    • 距离 根据发射器的移动距离按比例发射粒子。
  • 生命期颜色 管理粒子的颜色动画。
  • 生命期大小 执行类似功能,对其大小进行动画处理。
  • 噪声 组管理粒子的湍流属性。
  • 力 启用力的吸引及其类别。

编辑器工具栏

此工具栏控制粒子编辑器可视化的某些方面。

  • 网格 可视化 开/关
  • 发射器Gizmo可视化 开/关
  • 强制CPU粒子 开/关,即使GPU粒子可用时也生效。
  • 重置 相机位置。
  • 背景颜色:视口的背景颜色。

模拟控制

此栏控制粒子系统模拟生命周期的某些方面。

  • 重置 所有粒子,返回初始状态。
  • 播放/停止 粒子模拟。
  • 时间因子 滑块,用于控制粒子的时间。

在场景中使用粒子系统

将粒子系统资源拖入场景,将创建一个包含该粒子系统的实体。

该新实体包含 2个新组件(除了 Transform3D 之外)。

ParticlesComponent

此组件管理该粒子系统特定实例的模拟。它包含:

  • ParticleSystem 属性,用于设置源资源。
  • Force CPU Particles 显式使用CPU粒子并避免使用计算着色器粒子。
  • Emit Automatically 从一开始就自动发射。否则,我们需要手动启动其发射。
  • Life Factor 用于加快或减慢粒子老化速度。
  • Time Factor 用于加速或减慢粒子模拟。

该组件获取资源并生成模拟所需的所有图形资源、网格和缓冲区。

ParticlesRenderer

此组件仅渲染由 ParticlesComponent 定义的网格及其材质。

后续步骤

粒子编辑器的创建是我们致力于在 Evergine 中提供最佳粒子模拟的坚实一步。我们粒子系统的后续步骤之一将支持每个粒子系统 多个发射器 ,并在它们之间建立关系。

敬请期待!

Antonio avila
作者
Antonio Ávila
Plain Concepts Research