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.
Checking the stable version of the documentation...
复杂发射形状¶
如果仅根据处理材质 process material 中的某种简单形状发射粒子是不够的,Godot 提供了一种根据任意复杂形状发射粒子的方法。这些形状由场景中的网格生成,并作为纹理存储在粒子处理材质中。这是一种用途非常广泛的工作流程,用户可以将粒子系统用于传统用法之外的用途,如树叶或复杂的全息效果。
备注
从网格创建发射点时,只能选择一个节点作为发射源。如果你希望粒子从多个形状中发射,你必须创建多个粒子系统,或者在外部数字内容创作(DCC)软件中将网格合并为一个。
创建粒子发射点...¶
...来源自一个网格实例¶
更多的点 = 更高的粒子密度¶
要使用这一功能,首先要在当前场景中创建一个粒子系统。添加一个用于无限生成粒子发射点的网格实例。选择粒子系统后,导航到视口菜单并选择 GPU粒子3D*GPUParticles3D* 选项。从中选择 从节点创建发射点 / Create Emission Points From Node。
此时会弹出一个对话窗口,要求你选择一个节点作为发射源。选择场景中的一个网格实例并确认选择。下一个对话窗口将处理点的数量以及如何生成这些点。
发射点 ``Emission Points``控制将要生成的点的总数。粒子将从这些点中产生,因此在这里输入的内容取决于源网格的大小(需要覆盖的面积)和所需的粒子密度。
发射源 Emission Source``提供 3 种不同的点生成方式。如果你只想在网格表面分布发射点,请选择 表面点``Surface Point。如果你还想生成表面法线信息,并使粒子沿法线指向的方向移动,请选择表面点 + 法线(定向)``Surface Points + Normal (Directed)``。最后一个选项体积``Volume``会在网格内的任何地方创建发射点,而不仅仅是网格表面。
发射点存储在粒子系统的本地坐标系中,因此你可以移动粒子节点,发射点也会跟着移动。当你想在多个不同的地方使用同一个粒子系统时,这可能会很有用。另一方面,当你移动粒子系统或源网格时,可能需要重新生成发射点。
发射形状纹理¶
可用的发射形状纹理¶
复杂粒子发射形状的所有数据都存储在一组纹理中。具体数量取决于所使用的发射形状类型。如果将粒子处理材质的发射形状 Emission Shape``组中的形状 ``Shape``属性设置为点 ``Points,就可以访问点纹理 Point Texture``和颜色纹理``Color Texture``这两个纹理属性。如果将其设置为定向点``Directed Points,就可以访问第三个属性法线纹理``Normal Texture``属性。
点纹理``Point Texture``属性涵盖了上一步可能生成的所有发射点。每个粒子生成时都会随机选择一个点。如果存在法线纹理``Normal Texture`` 属性,它会在点位置提供一个方向向量。如果还设置了颜色纹理``Color Texture`` 属性,它会在点位置进行采样,调和处理材质上设置的其他颜色,为粒子提供颜色。
你还可以通过调用点计数``Point Count`` 属性,在创建发射形状后随时更改发射点的数量。这包括在游戏运行时动态更改点数量。