Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

复杂发射形状

复杂发射形状

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

备注

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

创建发射点

创建粒子发射点...

选择发射粒子的网格

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

设置发射密度

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

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

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

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

Emission Source offers 3 different options for how the points are generated. Select Surface Points if all you want to do is distribute the emission points across the surface of the mesh. Select Surface Points + Normal (Directed) if you also want to generate information about the surface normals and make particles move in the direction that the normals point at. The last option, Volume, creates emission points everywhere inside the mesh, not just across its surface.

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

发射形状纹理

发射纹理

可用的发射形状纹理

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

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

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