reckfellENGINE

Притягиватели GPU-частиц

Область, сила, затухание, направление, маски и векторные поля.

На этой странице

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

Включите взаимодействие

  1. В ParticleProcessMaterial включите Attractor Interaction (AttractorInteractionEnabled).
  2. Добавьте подходящий притягиватель частиц в тот же эффективный World3D.
  3. Согласуйте его CullMask с render Layers источника, не с физическими CollisionLayer/CollisionMask.
  4. Задайте область и силу; сначала отключите лишние факторы движения, чтобы увидеть результат.
  5. Проверьте частицу, рождённую внутри области, подходящую камеру и VisibilityAabb. Корректная сила не доказывает, что эффект вне кадра отрисовывается.

ParticleForces.CreatePull() из примера столкновений создаёт сферу в (1, 0, 0) с Radius 3, Strength 8, Attenuation 1 и Directionality 0. Добавьте Entity в мир и включите взаимодействие материала. Это пример коэффициента, не откалиброванный пресет гравитации.

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

Правильно понимайте параметры

ПараметрСмысл
StrengthПоложительное значение тянет вдоль выбранной силы, отрицательное обращает её. Для обычных ненаправленных сферы/бокса — к центру/от него.
AttenuationПоказатель изменения силы внутри области; используйте разумное неотрицательное значение. Не расстояние в метрах и не скорость частицы.
Directionality0 использует направление к центру для сферы/бокса; 1 — локальное -Z притягивателя при положительном Strength. Между ними направления смешиваются.
CullMaskВыбор источников по render Layers. Это не фильтр влияния по видимости камеры.
Radius / SizeОбласть соответствующей формы. Size бокса — полные локальные размеры, не половинные extents.

Поворот полностью направленного притягивателя меняет ось силы. Нативная проверка направляет локальное -Z вбок и подтверждает боковое ускорение. Отрицательный Strength обращает направление. Позиция всё ещё определяет попадание в область и затухание.

Частицы могут пересекать центр и пролетать его: сила ускоряет их, а не закрепляет позицию. Осознанно настраивайте жизнь, damping, начальную скорость и точность симуляции вместо подбора огромного Strength по одному кадру.

Выберите форму

Сфера и бокс задают простые области. Для контролируемой проверки используйте явные Radius/Size; не предполагайте заранее одинаковую проверенную работу любого неравномерного масштаба или движущейся области.

Векторное поле читает Texture3D внутри своего бокса. Шейдер линейно семплирует поле, декодирует знаковое направление/величину вокруг нейтрального (0.5, 0.5, 0.5) и добавляет силу с учётом настроенных strength, falloff и directionality. Это не привязка к ближайшему вектору и не прямое присваивание скорости.

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

Согласуйте силу и границы отображения

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

Общий ParticleProcessMaterial означает общие AttractorInteractionEnabled и другие настройки. Создавайте отдельные ресурсы для разной реакции источников либо осознанно используйте слои/маски. Обычные Area3D и переопределение физической гравитации не становятся притягивателями GPU-частиц автоматически.

Найдите причину неправильной силы

СимптомЧто проверить
Нет видимой реакцииФлаг материала, общий World3D, область, маски и видимость эффекта.
Всё ускоряется не тудаЗнак Strength, Directionality, поворот и кодирование поля.
Сила внезапно пропадаетГраницу области, жизнь и отсечение рендеринга.
Частицы колеблются через центрИсходную скорость и ускорение: притяжение не фиксирует позицию.
Настройка одного источника меняет другойОбщий материал симуляции.
Срезы поля направлены неожиданноРаскладку Texture3D, знаковое кодирование и трансформацию; начните с известного простого вектора.

Нативные проверки используют сферу на Windows Forward+/Vulkan. Векторные текстуры, неравномерный масштаб, движение притягивателей, объединённые поля, все устройства/экспорты и производительность проверяются отдельно. Это визуальная симуляция частиц, не замена достоверной игровой физике.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.