Системы частиц (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. Он создаёт карту высот мира и объектов для масштабных столкновений частиц.