GpuParticles3D
3D-излучатель частиц.
3D-излучатель частиц.
Узел 3D-частиц, используемый для создания различных систем частиц и эффектов. GpuParticles3D содержит эмиттер, который генерирует некоторое количество частиц с заданной скоростью.
Используйте GpuParticles3D.ProcessMaterial, чтобы добавить ParticleProcessMaterial для настройки внешнего вида и поведения частиц. В качестве альтернативы вы можете добавить ShaderMaterial, который будет применен ко всем частицам.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
GpuParticles3DКонструктор
public GpuParticles3D();Свойства32
AmountСвойство
public int Amount { get; set; }Вместимость, не менее 1. Изменение в текущем RenderingDevice освобождает данные частиц и сбрасывает фазу для перевыделения. Для доли эмиссии без смены вместимости используйте AmountRatio. Не является точным числом видимых частиц.
AmountRatioСвойство
public float AmountRatio { get; set; }Доля эмиссии от выделенного Amount; задавайте 0–1. Не уменьшает выделенную вместимость и не удаляет мгновенно живые частицы. Рождение также зависит от материала симуляции.
CollisionBaseSizeСвойство
public float CollisionBaseSize { get; set; }Базовый размер для столкновений частиц. Отличается от масштаба меша и VisibilityAabb; взаимодействие масштаба настраивает CollisionUseScale материала. Нужны CollisionMode и коллайдер GPU-частиц.
DrawOrderСвойство
public GpuParticles3D.DrawOrderEnum DrawOrder { get; set; }Порядок отрисовки частиц.
Примечание: GpuParticles3D.DrawOrderEnum.Index — единственный параметр, поддерживающий векторы движения для эффектов типа TAA. Рекомендуется использовать этот порядок отрисовки, если частицы непрозрачны, чтобы исправить артефакты двоения.
DrawPass1Свойство
public Mesh DrawPass1 { get; set; }Меш первого прохода отображения. Его поверхность определяет вид отдельно от ProcessMaterial. Null скрывает геометрию прохода, но не останавливает симуляцию.
DrawPass2Свойство
public Mesh DrawPass2 { get; set; }Mesh, который рисуется для второго прохода рисования.
DrawPass3Свойство
public Mesh DrawPass3 { get; set; }Mesh, который рисуется для третьего прохода рисования.
DrawPass4Свойство
public Mesh DrawPass4 { get; set; }Mesh, который рисуется для четвертого прохода рисования.
DrawPassesСвойство
public int DrawPasses { get; set; }Количество проходов отрисовки при рендеринге частиц.
DrawSkinСвойство
public Skin DrawSkin { get; set; }EmittingСвойство
public bool Emitting { get; set; }Управляет рождением новых частиц. False не удаляет живые частицы и не ставит симуляцию на паузу; у one-shot может появиться до исчезновения эффекта. Для нового цикла используйте Restart: повторное true в активном one-shot может отменить уведомление Finished.
ExplosivenessСвойство
public float Explosiveness { get; set; }Сжатие интервала рождения: 0 распределяет частицы по циклу, 1 собирает рождения в начале всплеска. Не задаёт скорость разлёта или силу ProcessMaterial.
FixedFpsСвойство
public int FixedFps { get; set; }Частота фиксированных шагов моделирования, не лимит кадров отрисовки. Положительное значение задаёт шаг 1/FPS. При 0 текущий RD использует переменную дельту для обычных частиц, но trails могут потребовать внутренний фиксированный шаг. По умолчанию 30; пример явно выбирает 60.
FractDeltaСвойство
public bool FractDelta { get; set; }Уточняет долю DELTA для рождения частицы внутри шага. Это не общая точность float и не интерполяция изображения. В текущем RD действует при расчёте фазы обычной эмиссии; не приписывайте тот же эффект всем ручным/sub-emission путям.
InterpToEndСвойство
public float InterpToEnd { get; set; }Значение, передаваемое particle-шейдеру как INTERPOLATE_TO_END. Ограничивается диапазоном 0–1. Готовый ParticleProcessMaterial использует его в расчёте возраста; собственный ShaderMaterial должен учитывать его явно. Это не длительность Lifetime и не интерполяция кадров Interpolate.
InterpolateСвойство
public bool Interpolate { get; set; }Интерполяция отображения между шагами моделирования. Не заменяет FixedFps, не добавляет вызовы process() и не является InterpToEnd. В текущем RD влияет на остаток времени при подготовке данных экземпляров.
LifetimeСвойство
public double Lifetime { get; set; }Время жизни/цикла в секундах, строго больше нуля. Вместе с Amount и расписанием рождения влияет на плотность; не равно времени до прекращения Emitting или точному числу кадров.
LocalCoordsСвойство
public bool LocalCoords { get; set; }При true живые частицы следуют трансформации источника; при false рождённые частицы остаются в мировом пространстве при его перемещении. Выбирайте пространство до запуска: переключение живого эффекта не гарантирует сохранения вида.
OneShotСвойство
public bool OneShot { get; set; }Один цикл вместо повторения. Finished сообщает о завершении one-shot, а не каждой ручной остановки непрерывного источника. Взрывной цикл может прекратить рождение до истечения жизни частиц.
PreprocessСвойство
public double Preprocess { get; set; }Количество времени для предварительной обработки частиц перед началом анимации. Позволяет запустить анимацию через некоторое время после того, как частицы начали испускаться.
Примечание: Это может быть очень затратно, если установлено большое число, так как это требует запуска шейдера частиц количество раз, равное GpuParticles3D.FixedFps (или 30, если GpuParticles3D.FixedFps равен 0) для каждой секунды. В крайних случаях это может даже привести к сбою графического процессора из-за объема работы, проделанной за один кадр.
ProcessMaterialСвойство
public Material ProcessMaterial { get; set; }Материал симуляции, например ParticleProcessMaterial. Управляет поведением, а не поверхностью меша. Для видимого эффекта отдельно нужен draw-pass mesh с материалом поверхности.
RandomnessСвойство
public float Randomness { get; set; }Коэффициент случайности излучения.
SeedСвойство
public uint Seed { get; set; }Зерно случайности частиц. Для сохранения при Restart включите UseFixedSeed либо передайте keepSeed=true. Само зерно не фиксирует все условия и шаги симуляции.
SpeedScaleСвойство
public double SpeedScale { get; set; }Масштаб хода симуляции. Ноль приостанавливает обычное продвижение, но не скрывает живую геометрию. Камера и трансформация при LocalCoords могут менять изображение даже на паузе. Не является FPS рендеринга. Ограничение времени в 1.0.0: после длительной паузы SpeedScale = 0 и возврата к 1 проверенный one-shot может выдать Finished, пока GPU-частицы ещё видны. Таймер Entity умножает накопленное время на текущий масштаб скорости; это не GPU-подтверждение истечения жизни. Не возвращайте эффект с меняющимся временем в пул только по этому сигналу. Фиксированная скорость простого one-shot исключает именно этот случай паузы/возобновления; при изменении времени отдельно проверьте политику жизненного цикла.
SubEmitterСвойство
public EntityPath SubEmitter { get; set; }Путь от этого источника к существующей целевой GpuParticles3D. Назначайте после создания обеих Entity; для рождений нужен режим основного ProcessMaterial. Не создаёт Entity на каждую частицу. Не используйте ссылки на себя/циклы; после изменения иерархии перепроверьте путь.
TrailEnabledСвойство
public bool TrailEnabled { get; set; }Включает историю шлейфа. Нужны совместимые mesh-позы и UseParticleTrails активной поверхности. Текущий RenderingDevice перестраивает данные при назначении этого параметра; не обновляйте его каждый кадр как дешёвую анимацию.
TrailLifetimeСвойство
public double TrailLifetime { get; set; }Длительность истории в секундах, не Lifetime частицы и не длина исходного меша. Минимум около 0.01; текущий RD-бэкенд ограничивает историю 10 секундами, хотя getter сцены хранит запрос. Изменение перестраивает данные/фазу; учитывайте движение, шаг и бюджет.
TransformAlignСвойство
public GpuParticles3D.TransformAlignEnum TransformAlign { get; set; }Выравнивание отображаемой трансформации частицы. YToVelocity — исходный вариант для направленной геометрии/шлейфов в примере. Не меняет скорость и не гарантирует отсутствие скрутки или уплощения на любом пути.
TransformAlignAxisСвойство
public RenderingServer.ParticlesTransformAlignAxis TransformAlignAxis { get; set; }При использовании функции Преобразовать локальный рекламный щит указывается, какую ось использовать для билбординга. Поддерживаются только оси X или Y.
TransformAlignChannelFilterСвойство
public RenderingServer.ParticlesTransformAlignCustomSrc TransformAlignChannelFilter { get; set; }В случае с частицами, отображаемыми на билборде, используется специальный канал для считывания данных с целью вычисления их угла.
UseFixedSeedСвойство
public bool UseFixedSeed { get; set; }Сохраняет заданный Seed при обычных перезапусках. Помогает повторять эффект, но не гарантирует побитовую детерминированность между драйверами, шагами времени и сборками.
VisibilityAabbСвойство
public Aabb VisibilityAabb { get; set; }Пользовательская граница отсечения всего источника. Вне кадра она может скрыть частицы, которые сами были бы видимы. Не является CaptureAabb текущего кадра, ограничителем траектории или коллайдером; охватите весь эффект и размеры мешей.
Методы65
CaptureAabbAabb
public Aabb CaptureAabb();Считывает текущие активные границы частиц. Наблюдение работающего эффекта не охватывает все будущие траектории и не назначает VisibilityAabb автоматически. Чтение данных GPU может иметь стоимость.
AabbAabb текущего состояния; проверьте разные моменты и крайние настройки перед использованием для отсечения.
ConvertFromParticlesvoid
public void ConvertFromParticles(Entity particles);Устанавливает свойства этого узла в соответствии с заданным узлом CpuParticles3D.
| Имя | Тип | По умолчанию |
|---|---|---|
particles | Entity | — |
EmitParticlevoid
public void EmitParticle(Transform3D xform, Vector3 velocity, Color color, Color custom, uint flags);Запрашивает ручной выпуск одной GPU-частицы. Флаги задают присутствующие компоненты; start() собственного шейдера должен проверять RESTART_POSITION/ROT_SCALE/VELOCITY/COLOR/CUSTOM, чтобы не затереть входные данные. Частица не является новым Entity. Нужны доступная ёмкость, ProcessMaterial, материал отрисовки и корректные границы; метод не возвращает подтверждение видимости.
| Имя | Тип | По умолчанию |
|---|---|---|
xform | Transform3D | — |
velocity | Vector3 | — |
color | Color | — |
custom | Color | — |
flags | uint | — |
xformПреобразование частицы. Флаги Position и RotationScale включают перенос и базис отдельно; не применяйте EMISSION_TRANSFORM повторно к уже мировым данным.
velocityНачальная скорость при флаге Velocity; согласуйте пространство с LocalCoords.
colorCOLOR частицы при флаге Color. Поверхность должна использовать этот цвет.
customЧетыре компоненты CUSTOM при флаге Custom. C# использует Color как контейнер; смысл определяет шейдер.
flagsБитовая комбинация GpuParticles3D.EmitFlags, явно преобразованная в uint. Отсутствующий флаг требует инициализации соответствующего поля в start().
GetAmountint
public int GetAmount();Возвращает Amount. Вместимость, не менее 1. Изменение в текущем RenderingDevice освобождает данные частиц и сбрасывает фазу для перевыделения. Для доли эмиссии без смены вместимости используйте AmountRatio. Не является точным числом видимых частиц.
intТекущее значение Amount в описанных единицах; учитывайте ограничения свойства.
GetAmountRatiofloat
public float GetAmountRatio();Возвращает AmountRatio. Доля эмиссии от выделенного Amount; задавайте 0–1. Не уменьшает выделенную вместимость и не удаляет мгновенно живые частицы. Рождение также зависит от материала симуляции.
floatТекущее значение AmountRatio в описанных единицах; учитывайте ограничения свойства.
GetCollisionBaseSizefloat
public float GetCollisionBaseSize();floatGetDrawOrderGpuParticles3D.DrawOrderEnum
public GpuParticles3D.DrawOrderEnum GetDrawOrder();GpuParticles3D.DrawOrderEnumGetDrawPassMeshMesh
public Mesh GetDrawPassMesh(int pass);Возвращает Mesh, который нарисован по индексу pass.
| Имя | Тип | По умолчанию |
|---|---|---|
pass | int | — |
MeshGetDrawPassesint
public int GetDrawPasses();intGetExplosivenessRatiofloat
public float GetExplosivenessRatio();Возвращает Explosiveness. Сжатие интервала рождения: 0 распределяет частицы по циклу, 1 собирает рождения в начале всплеска. Не задаёт скорость разлёта или силу ProcessMaterial.
floatТекущее значение Explosiveness в описанных единицах; учитывайте ограничения свойства.
GetFixedFpsint
public int GetFixedFps();Частота фиксированных шагов моделирования, не лимит кадров отрисовки. Положительное значение задаёт шаг 1/FPS. При 0 текущий RD использует переменную дельту для обычных частиц, но trails могут потребовать внутренний фиксированный шаг. По умолчанию 30; пример явно выбирает 60.
intСохранённая частота FixedFps.
GetFractionalDeltabool
public bool GetFractionalDelta();Уточняет долю DELTA для рождения частицы внутри шага. Это не общая точность float и не интерполяция изображения. В текущем RD действует при расчёте фазы обычной эмиссии; не приписывайте тот же эффект всем ручным/sub-emission путям.
boolСохранённый флаг дробной дельты.
GetInterpToEndfloat
public float GetInterpToEnd();Значение, передаваемое particle-шейдеру как INTERPOLATE_TO_END. Ограничивается диапазоном 0–1. Готовый ParticleProcessMaterial использует его в расчёте возраста; собственный ShaderMaterial должен учитывать его явно. Это не длительность Lifetime и не интерполяция кадров Interpolate.
floatСохранённое значение после clamp 0–1.
GetInterpolatebool
public bool GetInterpolate();Интерполяция отображения между шагами моделирования. Не заменяет FixedFps, не добавляет вызовы process() и не является InterpToEnd. В текущем RD влияет на остаток времени при подготовке данных экземпляров.
boolСохранённый флаг Interpolate.
GetLifetimedouble
public double GetLifetime();Возвращает Lifetime. Время жизни/цикла в секундах, строго больше нуля. Вместе с Amount и расписанием рождения влияет на плотность; не равно времени до прекращения Emitting или точному числу кадров.
doubleТекущее значение Lifetime в описанных единицах; учитывайте ограничения свойства.
GetOneShotbool
public bool GetOneShot();Возвращает OneShot. Один цикл вместо повторения. Finished сообщает о завершении one-shot, а не каждой ручной остановки непрерывного источника. Взрывной цикл может прекратить рождение до истечения жизни частиц.
boolТекущее значение OneShot в описанных единицах; учитывайте ограничения свойства.
GetPreProcessTimedouble
public double GetPreProcessTime();doubleGetProcessMaterialMaterial
public Material GetProcessMaterial();Возвращает ProcessMaterial. Материал симуляции, например ParticleProcessMaterial. Управляет поведением, а не поверхностью меша. Для видимого эффекта отдельно нужен draw-pass mesh с материалом поверхности.
MaterialТекущее значение ProcessMaterial в описанных единицах; учитывайте ограничения свойства.
GetRandomnessRatiofloat
public float GetRandomnessRatio();floatGetSeeduint
public uint GetSeed();Возвращает Seed. Зерно случайности частиц. Для сохранения при Restart включите UseFixedSeed либо передайте keepSeed=true. Само зерно не фиксирует все условия и шаги симуляции.
uintТекущее значение Seed в описанных единицах; учитывайте ограничения свойства.
GetSkinSkin
public Skin GetSkin();SkinGetSpeedScaledouble
public double GetSpeedScale();Возвращает SpeedScale. Масштаб хода симуляции. Ноль приостанавливает обычное продвижение, но не скрывает живую геометрию. Камера и трансформация при LocalCoords могут менять изображение даже на паузе. Не является FPS рендеринга. Ограничение времени в 1.0.0: после длительной паузы SpeedScale = 0 и возврата к 1 проверенный one-shot может выдать Finished, пока GPU-частицы ещё видны. Таймер Entity умножает накопленное время на текущий масштаб скорости; это не GPU-подтверждение истечения жизни. Не возвращайте эффект с меняющимся временем в пул только по этому сигналу. Фиксированная скорость простого one-shot исключает именно этот случай паузы/возобновления; при изменении времени отдельно проверьте политику жизненного цикла.
doubleТекущее значение SpeedScale в описанных единицах; учитывайте ограничения свойства.
GetSubEmitterEntityPath
public EntityPath GetSubEmitter();Возвращает SubEmitter. Путь от этого источника к существующей целевой GpuParticles3D. Назначайте после создания обеих Entity; для рождений нужен режим основного ProcessMaterial. Не создаёт Entity на каждую частицу. Не используйте ссылки на себя/циклы; после изменения иерархии перепроверьте путь.
EntityPathТекущее значение SubEmitter; учитывайте единицы и различие настройки/эффективного результата.
GetTrailLifetimedouble
public double GetTrailLifetime();Возвращает TrailLifetime. Длительность истории в секундах, не Lifetime частицы и не длина исходного меша. Минимум около 0.01; текущий RD-бэкенд ограничивает историю 10 секундами, хотя getter сцены хранит запрос. Изменение перестраивает данные/фазу; учитывайте движение, шаг и бюджет.
doubleТекущее значение TrailLifetime; учитывайте единицы и различие настройки/эффективного результата.
GetTransformAlignGpuParticles3D.TransformAlignEnum
public GpuParticles3D.TransformAlignEnum GetTransformAlign();Возвращает TransformAlign. Выравнивание отображаемой трансформации частицы. YToVelocity — исходный вариант для направленной геометрии/шлейфов в примере. Не меняет скорость и не гарантирует отсутствие скрутки или уплощения на любом пути.
GpuParticles3D.TransformAlignEnumТекущее значение TransformAlign; учитывайте единицы и различие настройки/эффективного результата.
GetTransformAlignAxisRenderingServer.ParticlesTransformAlignAxis
public RenderingServer.ParticlesTransformAlignAxis GetTransformAlignAxis();RenderingServer.ParticlesTransformAlignAxisGetTransformAlignChannelFilterRenderingServer.ParticlesTransformAlignCustomSrc
public RenderingServer.ParticlesTransformAlignCustomSrc GetTransformAlignChannelFilter();RenderingServer.ParticlesTransformAlignCustomSrcGetUseFixedSeedbool
public bool GetUseFixedSeed();Возвращает UseFixedSeed. Сохраняет заданный Seed при обычных перезапусках. Помогает повторять эффект, но не гарантирует побитовую детерминированность между драйверами, шагами времени и сборками.
boolТекущее значение UseFixedSeed в описанных единицах; учитывайте ограничения свойства.
GetUseLocalCoordinatesbool
public bool GetUseLocalCoordinates();Возвращает LocalCoords. При true живые частицы следуют трансформации источника; при false рождённые частицы остаются в мировом пространстве при его перемещении. Выбирайте пространство до запуска: переключение живого эффекта не гарантирует сохранения вида.
boolТекущее значение LocalCoords в описанных единицах; учитывайте ограничения свойства.
GetVisibilityAabbAabb
public Aabb GetVisibilityAabb();Возвращает VisibilityAabb. Пользовательская граница отсечения всего источника. Вне кадра она может скрыть частицы, которые сами были бы видимы. Не является CaptureAabb текущего кадра, ограничителем траектории или коллайдером; охватите весь эффект и размеры мешей.
AabbТекущее значение VisibilityAabb в описанных единицах; учитывайте ограничения свойства.
IsEmittingbool
public bool IsEmitting();Возвращает Emitting. Управляет рождением новых частиц. False не удаляет живые частицы и не ставит симуляцию на паузу; у one-shot может появиться до исчезновения эффекта. Для нового цикла используйте Restart: повторное true в активном one-shot может отменить уведомление Finished.
boolТекущее значение Emitting в описанных единицах; учитывайте ограничения свойства.
IsTrailEnabledbool
public bool IsTrailEnabled();Возвращает TrailEnabled. Включает историю шлейфа. Нужны совместимые mesh-позы и UseParticleTrails активной поверхности. Текущий RenderingDevice перестраивает данные при назначении этого параметра; не обновляйте его каждый кадр как дешёвую анимацию.
boolТекущее значение TrailEnabled; учитывайте единицы и различие настройки/эффективного результата.
RequestParticlesProcess2 перегрузки
public void RequestParticlesProcess(float processTime);Запрашивает у частиц дополнительное время обработки в течение одного кадра.
process_time определяет время обработки частиц при включенном излучении. process_time_residual определяет время обработки частиц при выключенном излучении для моделирования. В сочетании с GpuParticles3D.SpeedScale, установленным на 0.0, это полезно для возможности поиска временной шкалы системы частиц.
| Имя | Тип | По умолчанию |
|---|---|---|
processTime | float | — |
public void RequestParticlesProcess(float processTime, float processTimeResidual = 0f);Запрашивает у частиц дополнительное время обработки в течение одного кадра.
process_time определяет время обработки частиц при включенном излучении. process_time_residual определяет время обработки частиц при выключенном излучении для моделирования. В сочетании с GpuParticles3D.SpeedScale, установленным на 0.0, это полезно для возможности поиска временной шкалы системы частиц.
| Имя | Тип | По умолчанию |
|---|---|---|
processTime | float | — |
processTimeResidual | float | 0f |
Restart2 перегрузки
public void Restart();Очищает/перезапускает цикл и включает эмиссию. Может намеренно прервать живой эффект: ждать Finished перед каждым вызовом не обязательно. Новое зерно выбирается только без UseFixedSeed и без keepSeed.
public void Restart(bool keepSeed = false);Очищает/перезапускает цикл и включает эмиссию. Может намеренно прервать живой эффект: ждать Finished перед каждым вызовом не обязательно. Новое зерно выбирается только без UseFixedSeed и без keepSeed.
| Имя | Тип | По умолчанию |
|---|---|---|
keepSeed | bool | false |
keepSeedTrue сохраняет текущее зерно. False разрешает новое, если UseFixedSeed тоже выключен.
SetAmountvoid
public void SetAmount(int amount);Задаёт Amount. Вместимость, не менее 1. Изменение в текущем RenderingDevice освобождает данные частиц и сбрасывает фазу для перевыделения. Для доли эмиссии без смены вместимости используйте AmountRatio. Не является точным числом видимых частиц.
| Имя | Тип | По умолчанию |
|---|---|---|
amount | int | — |
amountВместимость, не менее 1. Изменение в текущем RenderingDevice освобождает данные частиц и сбрасывает фазу для перевыделения. Для доли эмиссии без смены вместимости используйте AmountRatio. Не является точным числом видимых частиц.
SetAmountRatiovoid
public void SetAmountRatio(float ratio);Задаёт AmountRatio. Доля эмиссии от выделенного Amount; задавайте 0–1. Не уменьшает выделенную вместимость и не удаляет мгновенно живые частицы. Рождение также зависит от материала симуляции.
| Имя | Тип | По умолчанию |
|---|---|---|
ratio | float | — |
ratioДоля эмиссии от выделенного Amount; задавайте 0–1. Не уменьшает выделенную вместимость и не удаляет мгновенно живые частицы. Рождение также зависит от материала симуляции.
SetCollisionBaseSizevoid
public void SetCollisionBaseSize(float size);| Имя | Тип | По умолчанию |
|---|---|---|
size | float | — |
SetDrawOrdervoid
public void SetDrawOrder(GpuParticles3D.DrawOrderEnum order);| Имя | Тип | По умолчанию |
|---|---|---|
order | GpuParticles3D.DrawOrderEnum | — |
SetDrawPassMeshvoid
public void SetDrawPassMesh(int pass, Mesh mesh);Устанавливает Mesh, который рисуется по индексу pass.
| Имя | Тип | По умолчанию |
|---|---|---|
pass | int | — |
mesh | Mesh | — |
SetDrawPassesvoid
public void SetDrawPasses(int passes);| Имя | Тип | По умолчанию |
|---|---|---|
passes | int | — |
SetEmittingvoid
public void SetEmitting(bool emitting);Задаёт Emitting. Управляет рождением новых частиц. False не удаляет живые частицы и не ставит симуляцию на паузу; у one-shot может появиться до исчезновения эффекта. Для нового цикла используйте Restart: повторное true в активном one-shot может отменить уведомление Finished.
| Имя | Тип | По умолчанию |
|---|---|---|
emitting | bool | — |
emittingУправляет рождением новых частиц. False не удаляет живые частицы и не ставит симуляцию на паузу; у one-shot может появиться до исчезновения эффекта. Для нового цикла используйте Restart: повторное true в активном one-shot может отменить уведомление Finished.
SetExplosivenessRatiovoid
public void SetExplosivenessRatio(float ratio);Задаёт Explosiveness. Сжатие интервала рождения: 0 распределяет частицы по циклу, 1 собирает рождения в начале всплеска. Не задаёт скорость разлёта или силу ProcessMaterial.
| Имя | Тип | По умолчанию |
|---|---|---|
ratio | float | — |
ratioСжатие интервала рождения: 0 распределяет частицы по циклу, 1 собирает рождения в начале всплеска. Не задаёт скорость разлёта или силу ProcessMaterial.
SetFixedFpsvoid
public void SetFixedFps(int fps);Частота фиксированных шагов моделирования, не лимит кадров отрисовки. Положительное значение задаёт шаг 1/FPS. При 0 текущий RD использует переменную дельту для обычных частиц, но trails могут потребовать внутренний фиксированный шаг. По умолчанию 30; пример явно выбирает 60.
| Имя | Тип | По умолчанию |
|---|---|---|
fps | int | — |
fps0 либо положительная частота моделирования. Setter сохраняет настройку, не является ограничителем частоты монитора.
SetFractionalDeltavoid
public void SetFractionalDelta(bool enable);Уточняет долю DELTA для рождения частицы внутри шага. Это не общая точность float и не интерполяция изображения. В текущем RD действует при расчёте фазы обычной эмиссии; не приписывайте тот же эффект всем ручным/sub-emission путям.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableВключить дробную дельту шага рождения.
SetInterpToEndvoid
public void SetInterpToEnd(float interp);Значение, передаваемое particle-шейдеру как INTERPOLATE_TO_END. Ограничивается диапазоном 0–1. Готовый ParticleProcessMaterial использует его в расчёте возраста; собственный ShaderMaterial должен учитывать его явно. Это не длительность Lifetime и не интерполяция кадров Interpolate.
| Имя | Тип | По умолчанию |
|---|---|---|
interp | float | — |
interpЗначение 0–1; выход за диапазон приводится к ближайшей границе.
SetInterpolatevoid
public void SetInterpolate(bool enable);Интерполяция отображения между шагами моделирования. Не заменяет FixedFps, не добавляет вызовы process() и не является InterpToEnd. В текущем RD влияет на остаток времени при подготовке данных экземпляров.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableВключить интерполяцию отображения.
SetLifetimevoid
public void SetLifetime(double secs);Задаёт Lifetime. Время жизни/цикла в секундах, строго больше нуля. Вместе с Amount и расписанием рождения влияет на плотность; не равно времени до прекращения Emitting или точному числу кадров.
| Имя | Тип | По умолчанию |
|---|---|---|
secs | double | — |
secsВремя жизни/цикла в секундах, строго больше нуля. Вместе с Amount и расписанием рождения влияет на плотность; не равно времени до прекращения Emitting или точному числу кадров.
SetOneShotvoid
public void SetOneShot(bool enable);Задаёт OneShot. Один цикл вместо повторения. Finished сообщает о завершении one-shot, а не каждой ручной остановки непрерывного источника. Взрывной цикл может прекратить рождение до истечения жизни частиц.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableОдин цикл вместо повторения. Finished сообщает о завершении one-shot, а не каждой ручной остановки непрерывного источника. Взрывной цикл может прекратить рождение до истечения жизни частиц.
SetPreProcessTimevoid
public void SetPreProcessTime(double secs);| Имя | Тип | По умолчанию |
|---|---|---|
secs | double | — |
SetProcessMaterialvoid
public void SetProcessMaterial(Material material);Задаёт ProcessMaterial. Материал симуляции, например ParticleProcessMaterial. Управляет поведением, а не поверхностью меша. Для видимого эффекта отдельно нужен draw-pass mesh с материалом поверхности.
| Имя | Тип | По умолчанию |
|---|---|---|
material | Material | — |
materialМатериал симуляции, например ParticleProcessMaterial. Управляет поведением, а не поверхностью меша. Для видимого эффекта отдельно нужен draw-pass mesh с материалом поверхности.
SetRandomnessRatiovoid
public void SetRandomnessRatio(float ratio);| Имя | Тип | По умолчанию |
|---|---|---|
ratio | float | — |
SetSeedvoid
public void SetSeed(uint seed);Задаёт Seed. Зерно случайности частиц. Для сохранения при Restart включите UseFixedSeed либо передайте keepSeed=true. Само зерно не фиксирует все условия и шаги симуляции.
| Имя | Тип | По умолчанию |
|---|---|---|
seed | uint | — |
seedЗерно случайности частиц. Для сохранения при Restart включите UseFixedSeed либо передайте keepSeed=true. Само зерно не фиксирует все условия и шаги симуляции.
SetSkinvoid
public void SetSkin(Skin skin);| Имя | Тип | По умолчанию |
|---|---|---|
skin | Skin | — |
SetSpeedScalevoid
public void SetSpeedScale(double scale);Задаёт SpeedScale. Масштаб хода симуляции. Ноль приостанавливает обычное продвижение, но не скрывает живую геометрию. Камера и трансформация при LocalCoords могут менять изображение даже на паузе. Не является FPS рендеринга. Ограничение времени в 1.0.0: после длительной паузы SpeedScale = 0 и возврата к 1 проверенный one-shot может выдать Finished, пока GPU-частицы ещё видны. Таймер Entity умножает накопленное время на текущий масштаб скорости; это не GPU-подтверждение истечения жизни. Не возвращайте эффект с меняющимся временем в пул только по этому сигналу. Фиксированная скорость простого one-shot исключает именно этот случай паузы/возобновления; при изменении времени отдельно проверьте политику жизненного цикла.
| Имя | Тип | По умолчанию |
|---|---|---|
scale | double | — |
scaleМасштаб хода симуляции. Ноль приостанавливает обычное продвижение, но не скрывает живую геометрию. Камера и трансформация при LocalCoords могут менять изображение даже на паузе. Не является FPS рендеринга. Ограничение времени в 1.0.0: после длительной паузы SpeedScale = 0 и возврата к 1 проверенный one-shot может выдать Finished, пока GPU-частицы ещё видны. Таймер Entity умножает накопленное время на текущий масштаб скорости; это не GPU-подтверждение истечения жизни. Не возвращайте эффект с меняющимся временем в пул только по этому сигналу. Фиксированная скорость простого one-shot исключает именно этот случай паузы/возобновления; при изменении времени отдельно проверьте политику жизненного цикла.
SetSubEmittervoid
public void SetSubEmitter(EntityPath path);Задаёт SubEmitter. Путь от этого источника к существующей целевой GpuParticles3D. Назначайте после создания обеих Entity; для рождений нужен режим основного ProcessMaterial. Не создаёт Entity на каждую частицу. Не используйте ссылки на себя/циклы; после изменения иерархии перепроверьте путь.
| Имя | Тип | По умолчанию |
|---|---|---|
path | EntityPath | — |
pathПуть от этого источника к существующей целевой GpuParticles3D. Назначайте после создания обеих Entity; для рождений нужен режим основного ProcessMaterial. Не создаёт Entity на каждую частицу. Не используйте ссылки на себя/циклы; после изменения иерархии перепроверьте путь.
SetTrailEnabledvoid
public void SetTrailEnabled(bool enabled);Задаёт TrailEnabled. Включает историю шлейфа. Нужны совместимые mesh-позы и UseParticleTrails активной поверхности. Текущий RenderingDevice перестраивает данные при назначении этого параметра; не обновляйте его каждый кадр как дешёвую анимацию.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledВключает историю шлейфа. Нужны совместимые mesh-позы и UseParticleTrails активной поверхности. Текущий RenderingDevice перестраивает данные при назначении этого параметра; не обновляйте его каждый кадр как дешёвую анимацию.
SetTrailLifetimevoid
public void SetTrailLifetime(double secs);Задаёт TrailLifetime. Длительность истории в секундах, не Lifetime частицы и не длина исходного меша. Минимум около 0.01; текущий RD-бэкенд ограничивает историю 10 секундами, хотя getter сцены хранит запрос. Изменение перестраивает данные/фазу; учитывайте движение, шаг и бюджет.
| Имя | Тип | По умолчанию |
|---|---|---|
secs | double | — |
secsДлительность истории в секундах, не Lifetime частицы и не длина исходного меша. Минимум около 0.01; текущий RD-бэкенд ограничивает историю 10 секундами, хотя getter сцены хранит запрос. Изменение перестраивает данные/фазу; учитывайте движение, шаг и бюджет.
SetTransformAlignvoid
public void SetTransformAlign(GpuParticles3D.TransformAlignEnum align);Задаёт TransformAlign. Выравнивание отображаемой трансформации частицы. YToVelocity — исходный вариант для направленной геометрии/шлейфов в примере. Не меняет скорость и не гарантирует отсутствие скрутки или уплощения на любом пути.
| Имя | Тип | По умолчанию |
|---|---|---|
align | GpuParticles3D.TransformAlignEnum | — |
alignВыравнивание отображаемой трансформации частицы. YToVelocity — исходный вариант для направленной геометрии/шлейфов в примере. Не меняет скорость и не гарантирует отсутствие скрутки или уплощения на любом пути.
SetTransformAlignAxisvoid
public void SetTransformAlignAxis(RenderingServer.ParticlesTransformAlignAxis align);| Имя | Тип | По умолчанию |
|---|---|---|
align | RenderingServer.ParticlesTransformAlignAxis | — |
SetTransformAlignChannelFiltervoid
public void SetTransformAlignChannelFilter(RenderingServer.ParticlesTransformAlignCustomSrc channelFilter);| Имя | Тип | По умолчанию |
|---|---|---|
channelFilter | RenderingServer.ParticlesTransformAlignCustomSrc | — |
SetUseFixedSeedvoid
public void SetUseFixedSeed(bool useFixedSeed);Задаёт UseFixedSeed. Сохраняет заданный Seed при обычных перезапусках. Помогает повторять эффект, но не гарантирует побитовую детерминированность между драйверами, шагами времени и сборками.
| Имя | Тип | По умолчанию |
|---|---|---|
useFixedSeed | bool | — |
useFixedSeedСохраняет заданный Seed при обычных перезапусках. Помогает повторять эффект, но не гарантирует побитовую детерминированность между драйверами, шагами времени и сборками.
SetUseLocalCoordinatesvoid
public void SetUseLocalCoordinates(bool enable);Задаёт LocalCoords. При true живые частицы следуют трансформации источника; при false рождённые частицы остаются в мировом пространстве при его перемещении. Выбирайте пространство до запуска: переключение живого эффекта не гарантирует сохранения вида.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableПри true живые частицы следуют трансформации источника; при false рождённые частицы остаются в мировом пространстве при его перемещении. Выбирайте пространство до запуска: переключение живого эффекта не гарантирует сохранения вида.
SetVisibilityAabbvoid
public void SetVisibilityAabb(Aabb aabb);Задаёт VisibilityAabb. Пользовательская граница отсечения всего источника. Вне кадра она может скрыть частицы, которые сами были бы видимы. Не является CaptureAabb текущего кадра, ограничителем траектории или коллайдером; охватите весь эффект и размеры мешей.
| Имя | Тип | По умолчанию |
|---|---|---|
aabb | Aabb | — |
aabbПользовательская граница отсечения всего источника. Вне кадра она может скрыть частицы, которые сами были бы видимы. Не является CaptureAabb текущего кадра, ограничителем траектории или коллайдером; охватите весь эффект и размеры мешей.
Сигналы и события1
FinishedСобытие
public event Action Finished;Завершение one-shot-цикла. Подключайте до запуска. Не является общим событием исчезновения частиц после ручной остановки непрерывного источника; повторное Emitting=true в активном one-shot может отменить уведомление. Ограничение времени в 1.0.0: после длительной паузы SpeedScale = 0 и возврата к 1 проверенный one-shot может выдать Finished, пока GPU-частицы ещё видны. Таймер Entity умножает накопленное время на текущий масштаб скорости; это не GPU-подтверждение истечения жизни. Не возвращайте эффект с меняющимся временем в пул только по этому сигналу. Фиксированная скорость простого one-shot исключает именно этот случай паузы/возобновления; при изменении времени отдельно проверьте политику жизненного цикла.
Поля и константы1
MaxDrawPassesПоле
public const long MaxDrawPasses = 4;Максимальное поддерживаемое количество проходов рисования.
GpuParticles3D.DrawOrderEnum
| Значение | Описание |
|---|---|
Index = 0 | Частицы рисуются в порядке испускания. |
Lifetime = 1 | Частицы рисуются в порядке оставшегося времени жизни. Другими словами, частица с наибольшим временем жизни рисуется спереди. |
ReverseLifetime = 2 | Частицы рисуются в обратном порядке оставшегося времени жизни. Другими словами, частица с наименьшим временем жизни рисуется спереди. |
ViewDepth = 3 | Частицы рисуются в порядке глубины. |
GpuParticles3D.EmitFlags
| Значение | Описание |
|---|---|
Color = 8 | Частица начинается с указанного цвета. |
Custom = 16 | Частица начинается с указанных данных |
Position = 1 | Частица стартует в указанной позиции. |
RotationScale = 2 | Частица начинается с указанного поворота и масштаба. |
Velocity = 4 | Частица стартует с заданным вектором скорости, который определяет направление и скорость излучения. |
GpuParticles3D.TransformAlignEnum
| Значение | Описание |
|---|---|
Disabled = 0 | Не следует выравнивать преобразования частиц относительно камеры или скорости. |
LocalBillboard = 4 | Выровняйте ось Z каждой частицы так, чтобы она была направлена в сторону камеры, сохраняя при этом заданную ось (X или Y). |
YToVelocity = 2 | Выровняйте ось Y каждой частицы по вектору скорости. |
ZBillboard = 1 | Расположите ось Z каждой частицы так, чтобы она была направлена в сторону камеры. ТАМОЖЕННАЯ ПОМОЩЬ |
ZBillboardYToVelocity = 3 | Расположите ось Z каждой частицы напротив камеры, а ось Y — относительно вектора скорости. ТАМОЖЕННАЯ ПОМОЩЬ В СВЯЗИ |