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...
Системы частиц (3D)
В этом разделе руководства рассматриваются (3D) системы частиц с ускорением на GPU. Большинство обсуждаемых здесь вещей применимы и к частицам CPU.
Введение
Вы можете использовать системы частиц для имитации сложных физических эффектов, таких как огонь, искры, дым, магические эффекты и многое другое. Они очень хорошо подходят для создания динамического и органического поведения и добавления «жизни» в ваши сцены.
Идея заключается в том, что частица испускается через фиксированные интервалы и имеет фиксированное время жизни. В течение жизни каждая частица будет иметь одинаковое базовое поведение. Уникальность каждой частицы и органичный вид создаются за счёт случайных вариаций параметров и поведения.
Каждая система частиц, которую вы создаете в Godot, состоит из двух основных частей: частиц и эмиттеров.
Particles (Частицы)
Частица - это видимая часть системы частиц. Это то, что вы видите на экране, когда система частиц активна: Крошечные пылинки, пламя огня, светящиеся шары магического эффекта. В одной системе может быть от пары сотен до десятков тысяч частиц. Вы можете рандомизировать размер частицы, ее скорость и направление движения, а также менять ее цвет в течение всего времени жизни. Когда вы думаете о пожаре, вы можете представить себе все маленькие угольки, разлетающиеся от него, как отдельные частицы.
Эмиттеры
Эмиттер - это то, что создает частицы. Обычно эмиттеры не видны, но они могут иметь форму. Эта форма определяет, где и как порождаются частицы, например, должны ли они заполнять комнату, как пыль, или вылетать из одной точки, как фонтан. Возвращаясь к примеру с огнем, эмиттер - это тепло в центре огня, которое создает угли и пламя.
Обзор узлов
Все узлы 3D-частиц, доступные в Godot
В Godot есть два типа систем 3D-частиц: GPUParticles3D, которые обрабатываются на GPU, и CPUParticles3D, которые обрабатываются на CPU.
Системы частиц на CPU менее гибкие, чем их аналоги на GPU, но они работают на более широком спектре оборудования и обеспечивают лучшую поддержку старых устройств и мобильных телефонов. Поскольку они обрабатываются на CPU, они не так производительны, как системы частиц GPU, и не могут отрисовывать такое количество отдельных частиц. Кроме того, в настоящее время они не имеют всех доступных опций для управления частицами GPU.
GPU-системы частиц работают на GPU и могут рендерить сотни тысяч частиц на современном оборудовании. Для них можно писать собственные шейдеры частиц, что делает их очень гибкими. Вы также можете заставить их взаимодействовать с окружением, используя узлы аттракторов и коллизий.
Существует три узла аттрактора частиц: GPUParticlesAttractorBox3D, GPUParticlesAttractorSphere3D и GPUParticlesAttractorVectorField3D. Узел аттрактора прикладывает силу ко всем частицам в зоне его действия и притягивает или отталкивает их в зависимости от направления этой силы.
Существует несколько узлов столкновений частиц. GPUParticlesCollisionBox3D и GPUParticlesCollisionSphere3D — простейшие. Их можно использовать для создания базовых форм (коробки, пол, стена), о которые будут сталкиваться частицы. Два других узла обеспечивают более сложное поведение при столкновении. GPUParticlesCollisionSDF3D полезен, когда нужно сталкивать частицы с объектами в помещении без ручного создания отдельных коллайдеров. Для столкновений частиц с крупными открытыми сценами используйте GPUParticlesCollisionHeightField3D. Он создаёт карту высот мира и объектов для масштабных столкновений частиц.