复杂发射形状

复杂发射形状

如果仅根据处理材质 process material 中的某种简单形状发射粒子是不够的,Godot 提供了一种根据任意复杂形状发射粒子的方法。这些形状由场景中的网格生成,并作为纹理存储在粒子处理材质中。这是一种用途非常广泛的工作流程,用户可以将粒子系统用于传统用法之外的用途,如树叶或复杂的全息效果。

备注

从网格创建发射点时,只能选择一个节点作为发射源。如果你希望粒子从多个形状中发射,你必须创建多个粒子系统,或者在外部数字内容创作(DCC)软件中将网格合并为一个。

创建发射点

创建粒子发射点...

选择发射粒子的网格

...来源自一个网格实例

设置发射密度

更多的点 = 更高的粒子密度

要使用该功能,首先在当前场景中创建一个粒子系统。添加一个网格实例作为粒子发射点的源。选中粒子系统后,导航到视口菜单并选择 GPUParticles3D 条目。从那里,选择从节点创建发射点

此时会弹出一个对话窗口,要求你选择一个节点作为发射源。选择场景中的一个网格实例并确认选择。下一个对话窗口将处理点的数量以及如何生成这些点。

发射点 Emission Points 控制将要生成的点的总数。粒子将从这些点中生成,因此在这里输入的内容取决于源网格的大小(需要覆盖的面积)和所需的粒子密度。

发射源 Emission Source``提供 3 种不同的点生成方式。如果你只想在网格表面分布发射点,请选择 表面点``Surface Point。如果你还想生成表面法线信息,并使粒子沿法线指向的方向移动,请选择表面点 + 法线(定向)``Surface Points + Normal (Directed)``。最后一个选项体积``Volume``会在网格内的任何地方创建发射点,而不仅仅是网格表面。

发射点存储在粒子系统的本地坐标系中,因此你可以移动粒子节点,发射点也会跟着移动。当你想在多个不同的地方使用同一个粒子系统时,这可能会很有用。另一方面,当你移动粒子系统或源网格时,可能需要重新生成发射点。

发射形状纹理

发射纹理

可用的发射形状纹理

复杂粒子发射形状的所有数据都存储在一组纹理中。具体数量取决于所使用的发射形状类型。如果将粒子处理材质上发射形状(Emission Shape)组中的形状(Shape)属性设置为点(Points),则可以访问 2 个纹理属性,即点纹理(Point Texture)颜色纹理(Color Texture)。将其设置为定向点(Directed Points),则还有第三个属性,称为法线纹理(Normal Texture)

点纹理``Point Texture``属性涵盖了上一步可能生成的所有发射点。每个粒子生成时都会随机选择一个点。如果存在法线纹理``Normal Texture`` 属性,它会在点位置提供一个方向向量。如果还设置了颜色纹理``Color Texture`` 属性,它会在点位置进行采样,调和处理材质上设置的其他颜色,为粒子提供颜色。

你还可以通过调用点计数``Point Count`` 属性,在创建发射形状后随时更改发射点的数量。这包括在游戏运行时动态更改点数量。