Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Системы частиц (3D)

This section of the tutorial covers (3D) GPU-accelerated particle systems. Most of the things discussed here apply to CPU particles as well.

Введение

You can use particle systems to simulate complex physical effects like fire, sparks, smoke, magical effects, and many more. They are very well suited for creating dynamic and organic behavior and adding "life" to your scenes.

The idea is that a particle is emitted at a fixed interval and with a fixed lifetime. During its lifetime, every particle will have the same base behavior. What makes each particle different from the others and creates the organic look is the randomness that you can add to most of its parameters and behaviors.

Каждая система частиц, которую вы создаете в Godot, состоит из двух основных частей: частиц и эмиттеров.

Частицы

Частица - это видимая часть системы частиц. Это то, что вы видите на экране, когда система частиц активна: Крошечные пылинки, пламя огня, светящиеся шары магического эффекта. В одной системе может быть от пары сотен до десятков тысяч частиц. Вы можете рандомизировать размер частицы, ее скорость и направление движения, а также менять ее цвет в течение всего времени жизни. Когда вы думаете о пожаре, вы можете представить себе все маленькие угольки, разлетающиеся от него, как отдельные частицы.

Emitters

Эмиттер - это то, что создает частицы. Обычно эмиттеры не видны, но они могут иметь форму. Эта форма определяет, где и как порождаются частицы, например, должны ли они заполнять комнату, как пыль, или вылетать из одной точки, как фонтан. Возвращаясь к примеру с огнем, эмиттер - это тепло в центре огня, которое создает угли и пламя.

Node overview

Список узлов, относящихся к 3D-частицам

Все узлы 3D-частиц, доступные в Godot

В Godot есть два типа систем 3D-частиц: GPUParticles3D, которые обрабатываются на GPU, и CPUParticles3D, которые обрабатываются на CPU.

Системы частиц на CPU менее гибкие, чем их аналоги на GPU, но они работают на более широком спектре оборудования и обеспечивают лучшую поддержку старых устройств и мобильных телефонов. Поскольку они обрабатываются на CPU, они не так производительны, как системы частиц GPU, и не могут отрисовывать такое количество отдельных частиц. Кроме того, в настоящее время они не имеют всех доступных опций для управления частицами GPU.

GPU-системы частиц работают на GPU и могут рендерить сотни тысяч частиц на современном оборудовании. Для них можно писать собственные шейдеры частиц, что делает их очень гибкими. Вы также можете заставить их взаимодействовать с окружением, используя узлы аттракторов и коллизий.

Существует три узла аттрактора частиц: GPUParticlesAttractorBox3D, GPUParticlesAttractorSphere3D и GPUParticlesAttractorVectorField3D. Узел аттрактора прикладывает силу ко всем частицам в зоне его действия и притягивает или отталкивает их в зависимости от направления этой силы.

Существует несколько узлов столкновения частиц. GPUParticlesCollisionBox3D и GPUParticlesCollisionSphere3D - самые простые. С их помощью можно создать базовые фигуры, такие как коробки, пол или стена, с которыми сталкиваются частицы. Два других узла обеспечивают более сложное поведение столкновений. Узел GPUParticlesCollisionSDF3D полезен, когда вы хотите, чтобы частицы сталкивались в закрытых сценах без необходимости вручную создавать все отдельные коллайдеры для коробок и сфер. Если вы хотите, чтобы частицы сталкивались с большими открытыми сценами, используйте ноду GPUParticlesCollisionHeightField3D. Он создает карту высот вашего мира и объектов в нем и использует ее для масштабных коллизий частиц.

Basic usage

Advanced topics