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

В этом разделе руководства рассматриваются (3D) системы частиц с ускорением на GPU. Большинство обсуждаемых здесь вещей применимы и к частицам CPU.

Введение

Вы можете использовать системы частиц для имитации сложных физических эффектов, таких как огонь, искры, дым, магические эффекты и многое другое. Они очень хорошо подходят для создания динамического и органического поведения и добавления «жизни» в ваши сцены.

Идея заключается в том, что частица испускается через фиксированные интервалы и имеет фиксированное время жизни. В течение жизни каждая частица будет иметь одинаковое базовое поведение. Уникальность каждой частицы и органичный вид создаются за счёт случайных вариаций параметров и поведения.

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

Particles (Частицы)

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

Эмиттеры

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

Обзор узлов

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

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

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

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

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

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

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

Базовое использование

Расширенные темы