reckfellENGINE

GpuParticles3D

3D-излучатель частиц.

На этой странице
class GpuParticles3DReckfellSharpНаследует GeometryInstance3D

3D-излучатель частиц.

Узел 3D-частиц, используемый для создания различных систем частиц и эффектов. GpuParticles3D содержит эмиттер, который генерирует некоторое количество частиц с заданной скоростью. Используйте GpuParticles3D.ProcessMaterial, чтобы добавить ParticleProcessMaterial для настройки внешнего вида и поведения частиц. В качестве альтернативы вы можете добавить ShaderMaterial, который будет применен ко всем частицам.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

GpuParticles3DКонструктор
# GpuParticles3D
C#
public GpuParticles3D();

Свойства32

AmountСвойство
# Amount
C#
public int Amount { get; set; }

Вместимость, не менее 1. Изменение в текущем RenderingDevice освобождает данные частиц и сбрасывает фазу для перевыделения. Для доли эмиссии без смены вместимости используйте AmountRatio. Не является точным числом видимых частиц.

AmountRatioСвойство
# AmountRatio
C#
public float AmountRatio { get; set; }

Доля эмиссии от выделенного Amount; задавайте 0–1. Не уменьшает выделенную вместимость и не удаляет мгновенно живые частицы. Рождение также зависит от материала симуляции.

CollisionBaseSizeСвойство
# CollisionBaseSize
C#
public float CollisionBaseSize { get; set; }

Базовый размер для столкновений частиц. Отличается от масштаба меша и VisibilityAabb; взаимодействие масштаба настраивает CollisionUseScale материала. Нужны CollisionMode и коллайдер GPU-частиц.

DrawOrderСвойство
# DrawOrder
C#
public GpuParticles3D.DrawOrderEnum DrawOrder { get; set; }

Порядок отрисовки частиц. Примечание: GpuParticles3D.DrawOrderEnum.Index — единственный параметр, поддерживающий векторы движения для эффектов типа TAA. Рекомендуется использовать этот порядок отрисовки, если частицы непрозрачны, чтобы исправить артефакты двоения.

DrawPass1Свойство
# DrawPass1
C#
public Mesh DrawPass1 { get; set; }

Меш первого прохода отображения. Его поверхность определяет вид отдельно от ProcessMaterial. Null скрывает геометрию прохода, но не останавливает симуляцию.

DrawPass2Свойство
# DrawPass2
C#
public Mesh DrawPass2 { get; set; }

Mesh, который рисуется для второго прохода рисования.

DrawPass3Свойство
# DrawPass3
C#
public Mesh DrawPass3 { get; set; }

Mesh, который рисуется для третьего прохода рисования.

DrawPass4Свойство
# DrawPass4
C#
public Mesh DrawPass4 { get; set; }

Mesh, который рисуется для четвертого прохода рисования.

DrawPassesСвойство
# DrawPasses
C#
public int DrawPasses { get; set; }

Количество проходов отрисовки при рендеринге частиц.

DrawSkinСвойство
# DrawSkin
C#
public Skin DrawSkin { get; set; }
EmittingСвойство
# Emitting
C#
public bool Emitting { get; set; }

Управляет рождением новых частиц. False не удаляет живые частицы и не ставит симуляцию на паузу; у one-shot может появиться до исчезновения эффекта. Для нового цикла используйте Restart: повторное true в активном one-shot может отменить уведомление Finished.

ExplosivenessСвойство
# Explosiveness
C#
public float Explosiveness { get; set; }

Сжатие интервала рождения: 0 распределяет частицы по циклу, 1 собирает рождения в начале всплеска. Не задаёт скорость разлёта или силу ProcessMaterial.

FixedFpsСвойство
# FixedFps
C#
public int FixedFps { get; set; }

Частота фиксированных шагов моделирования, не лимит кадров отрисовки. Положительное значение задаёт шаг 1/FPS. При 0 текущий RD использует переменную дельту для обычных частиц, но trails могут потребовать внутренний фиксированный шаг. По умолчанию 30; пример явно выбирает 60.

FractDeltaСвойство
# FractDelta
C#
public bool FractDelta { get; set; }

Уточняет долю DELTA для рождения частицы внутри шага. Это не общая точность float и не интерполяция изображения. В текущем RD действует при расчёте фазы обычной эмиссии; не приписывайте тот же эффект всем ручным/sub-emission путям.

InterpToEndСвойство
# InterpToEnd
C#
public float InterpToEnd { get; set; }

Значение, передаваемое particle-шейдеру как INTERPOLATE_TO_END. Ограничивается диапазоном 0–1. Готовый ParticleProcessMaterial использует его в расчёте возраста; собственный ShaderMaterial должен учитывать его явно. Это не длительность Lifetime и не интерполяция кадров Interpolate.

InterpolateСвойство
# Interpolate
C#
public bool Interpolate { get; set; }

Интерполяция отображения между шагами моделирования. Не заменяет FixedFps, не добавляет вызовы process() и не является InterpToEnd. В текущем RD влияет на остаток времени при подготовке данных экземпляров.

LifetimeСвойство
# Lifetime
C#
public double Lifetime { get; set; }

Время жизни/цикла в секундах, строго больше нуля. Вместе с Amount и расписанием рождения влияет на плотность; не равно времени до прекращения Emitting или точному числу кадров.

LocalCoordsСвойство
# LocalCoords
C#
public bool LocalCoords { get; set; }

При true живые частицы следуют трансформации источника; при false рождённые частицы остаются в мировом пространстве при его перемещении. Выбирайте пространство до запуска: переключение живого эффекта не гарантирует сохранения вида.

OneShotСвойство
# OneShot
C#
public bool OneShot { get; set; }

Один цикл вместо повторения. Finished сообщает о завершении one-shot, а не каждой ручной остановки непрерывного источника. Взрывной цикл может прекратить рождение до истечения жизни частиц.

PreprocessСвойство
# Preprocess
C#
public double Preprocess { get; set; }

Количество времени для предварительной обработки частиц перед началом анимации. Позволяет запустить анимацию через некоторое время после того, как частицы начали испускаться. Примечание: Это может быть очень затратно, если установлено большое число, так как это требует запуска шейдера частиц количество раз, равное GpuParticles3D.FixedFps (или 30, если GpuParticles3D.FixedFps равен 0) для каждой секунды. В крайних случаях это может даже привести к сбою графического процессора из-за объема работы, проделанной за один кадр.

ProcessMaterialСвойство
# ProcessMaterial
C#
public Material ProcessMaterial { get; set; }

Материал симуляции, например ParticleProcessMaterial. Управляет поведением, а не поверхностью меша. Для видимого эффекта отдельно нужен draw-pass mesh с материалом поверхности.

RandomnessСвойство
# Randomness
C#
public float Randomness { get; set; }

Коэффициент случайности излучения.

SeedСвойство
# Seed
C#
public uint Seed { get; set; }

Зерно случайности частиц. Для сохранения при Restart включите UseFixedSeed либо передайте keepSeed=true. Само зерно не фиксирует все условия и шаги симуляции.

SpeedScaleСвойство
# SpeedScale
C#
public double SpeedScale { get; set; }

Масштаб хода симуляции. Ноль приостанавливает обычное продвижение, но не скрывает живую геометрию. Камера и трансформация при LocalCoords могут менять изображение даже на паузе. Не является FPS рендеринга. Ограничение времени в 1.0.0: после длительной паузы SpeedScale = 0 и возврата к 1 проверенный one-shot может выдать Finished, пока GPU-частицы ещё видны. Таймер Entity умножает накопленное время на текущий масштаб скорости; это не GPU-подтверждение истечения жизни. Не возвращайте эффект с меняющимся временем в пул только по этому сигналу. Фиксированная скорость простого one-shot исключает именно этот случай паузы/возобновления; при изменении времени отдельно проверьте политику жизненного цикла.

SubEmitterСвойство
# SubEmitter
C#
public EntityPath SubEmitter { get; set; }

Путь от этого источника к существующей целевой GpuParticles3D. Назначайте после создания обеих Entity; для рождений нужен режим основного ProcessMaterial. Не создаёт Entity на каждую частицу. Не используйте ссылки на себя/циклы; после изменения иерархии перепроверьте путь.

TrailEnabledСвойство
# TrailEnabled
C#
public bool TrailEnabled { get; set; }

Включает историю шлейфа. Нужны совместимые mesh-позы и UseParticleTrails активной поверхности. Текущий RenderingDevice перестраивает данные при назначении этого параметра; не обновляйте его каждый кадр как дешёвую анимацию.

TrailLifetimeСвойство
# TrailLifetime
C#
public double TrailLifetime { get; set; }

Длительность истории в секундах, не Lifetime частицы и не длина исходного меша. Минимум около 0.01; текущий RD-бэкенд ограничивает историю 10 секундами, хотя getter сцены хранит запрос. Изменение перестраивает данные/фазу; учитывайте движение, шаг и бюджет.

TransformAlignСвойство
# TransformAlign
C#
public GpuParticles3D.TransformAlignEnum TransformAlign { get; set; }

Выравнивание отображаемой трансформации частицы. YToVelocity — исходный вариант для направленной геометрии/шлейфов в примере. Не меняет скорость и не гарантирует отсутствие скрутки или уплощения на любом пути.

TransformAlignAxisСвойство
# TransformAlignAxis
C#
public RenderingServer.ParticlesTransformAlignAxis TransformAlignAxis { get; set; }

При использовании функции Преобразовать локальный рекламный щит указывается, какую ось использовать для билбординга. Поддерживаются только оси X или Y.

TransformAlignChannelFilterСвойство
# TransformAlignChannelFilter
C#
public RenderingServer.ParticlesTransformAlignCustomSrc TransformAlignChannelFilter { get; set; }

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

UseFixedSeedСвойство
# UseFixedSeed
C#
public bool UseFixedSeed { get; set; }

Сохраняет заданный Seed при обычных перезапусках. Помогает повторять эффект, но не гарантирует побитовую детерминированность между драйверами, шагами времени и сборками.

VisibilityAabbСвойство
# VisibilityAabb
C#
public Aabb VisibilityAabb { get; set; }

Пользовательская граница отсечения всего источника. Вне кадра она может скрыть частицы, которые сами были бы видимы. Не является CaptureAabb текущего кадра, ограничителем траектории или коллайдером; охватите весь эффект и размеры мешей.

Методы65

CaptureAabbAabb
# CaptureAabb
C#
public Aabb CaptureAabb();

Считывает текущие активные границы частиц. Наблюдение работающего эффекта не охватывает все будущие траектории и не назначает VisibilityAabb автоматически. Чтение данных GPU может иметь стоимость.

Возвращает Aabb

Aabb текущего состояния; проверьте разные моменты и крайние настройки перед использованием для отсечения.

ConvertFromParticlesvoid
# ConvertFromParticles
C#
public void ConvertFromParticles(Entity particles);

Устанавливает свойства этого узла в соответствии с заданным узлом CpuParticles3D.

Параметры
ИмяТипПо умолчанию
particlesEntity—
EmitParticlevoid
# EmitParticle
C#
public void EmitParticle(Transform3D xform, Vector3 velocity, Color color, Color custom, uint flags);

Запрашивает ручной выпуск одной GPU-частицы. Флаги задают присутствующие компоненты; start() собственного шейдера должен проверять RESTART_POSITION/ROT_SCALE/VELOCITY/COLOR/CUSTOM, чтобы не затереть входные данные. Частица не является новым Entity. Нужны доступная ёмкость, ProcessMaterial, материал отрисовки и корректные границы; метод не возвращает подтверждение видимости.

Параметры
ИмяТипПо умолчанию
xformTransform3D—
velocityVector3—
colorColor—
customColor—
flagsuint—
xform

Преобразование частицы. Флаги Position и RotationScale включают перенос и базис отдельно; не применяйте EMISSION_TRANSFORM повторно к уже мировым данным.

velocity

Начальная скорость при флаге Velocity; согласуйте пространство с LocalCoords.

color

COLOR частицы при флаге Color. Поверхность должна использовать этот цвет.

custom

Четыре компоненты CUSTOM при флаге Custom. C# использует Color как контейнер; смысл определяет шейдер.

flags

Битовая комбинация GpuParticles3D.EmitFlags, явно преобразованная в uint. Отсутствующий флаг требует инициализации соответствующего поля в start().

GetAmountint
# GetAmount
C#
public int GetAmount();

Возвращает Amount. Вместимость, не менее 1. Изменение в текущем RenderingDevice освобождает данные частиц и сбрасывает фазу для перевыделения. Для доли эмиссии без смены вместимости используйте AmountRatio. Не является точным числом видимых частиц.

Возвращает int

Текущее значение Amount в описанных единицах; учитывайте ограничения свойства.

GetAmountRatiofloat
# GetAmountRatio
C#
public float GetAmountRatio();

Возвращает AmountRatio. Доля эмиссии от выделенного Amount; задавайте 0–1. Не уменьшает выделенную вместимость и не удаляет мгновенно живые частицы. Рождение также зависит от материала симуляции.

Возвращает float

Текущее значение AmountRatio в описанных единицах; учитывайте ограничения свойства.

GetCollisionBaseSizefloat
# GetCollisionBaseSize
C#
public float GetCollisionBaseSize();
Возвращает float
GetDrawOrderGpuParticles3D.DrawOrderEnum
# GetDrawOrder
C#
public GpuParticles3D.DrawOrderEnum GetDrawOrder();
Возвращает GpuParticles3D.DrawOrderEnum
GetDrawPassMeshMesh
# GetDrawPassMesh
C#
public Mesh GetDrawPassMesh(int pass);

Возвращает Mesh, который нарисован по индексу pass.

Параметры
ИмяТипПо умолчанию
passint—
Возвращает Mesh
GetDrawPassesint
# GetDrawPasses
C#
public int GetDrawPasses();
Возвращает int
GetExplosivenessRatiofloat
# GetExplosivenessRatio
C#
public float GetExplosivenessRatio();

Возвращает Explosiveness. Сжатие интервала рождения: 0 распределяет частицы по циклу, 1 собирает рождения в начале всплеска. Не задаёт скорость разлёта или силу ProcessMaterial.

Возвращает float

Текущее значение Explosiveness в описанных единицах; учитывайте ограничения свойства.

GetFixedFpsint
# GetFixedFps
C#
public int GetFixedFps();

Частота фиксированных шагов моделирования, не лимит кадров отрисовки. Положительное значение задаёт шаг 1/FPS. При 0 текущий RD использует переменную дельту для обычных частиц, но trails могут потребовать внутренний фиксированный шаг. По умолчанию 30; пример явно выбирает 60.

Возвращает int

Сохранённая частота FixedFps.

GetFractionalDeltabool
# GetFractionalDelta
C#
public bool GetFractionalDelta();

Уточняет долю DELTA для рождения частицы внутри шага. Это не общая точность float и не интерполяция изображения. В текущем RD действует при расчёте фазы обычной эмиссии; не приписывайте тот же эффект всем ручным/sub-emission путям.

Возвращает bool

Сохранённый флаг дробной дельты.

GetInterpToEndfloat
# GetInterpToEnd
C#
public float GetInterpToEnd();

Значение, передаваемое particle-шейдеру как INTERPOLATE_TO_END. Ограничивается диапазоном 0–1. Готовый ParticleProcessMaterial использует его в расчёте возраста; собственный ShaderMaterial должен учитывать его явно. Это не длительность Lifetime и не интерполяция кадров Interpolate.

Возвращает float

Сохранённое значение после clamp 0–1.

GetInterpolatebool
# GetInterpolate
C#
public bool GetInterpolate();

Интерполяция отображения между шагами моделирования. Не заменяет FixedFps, не добавляет вызовы process() и не является InterpToEnd. В текущем RD влияет на остаток времени при подготовке данных экземпляров.

Возвращает bool

Сохранённый флаг Interpolate.

GetLifetimedouble
# GetLifetime
C#
public double GetLifetime();

Возвращает Lifetime. Время жизни/цикла в секундах, строго больше нуля. Вместе с Amount и расписанием рождения влияет на плотность; не равно времени до прекращения Emitting или точному числу кадров.

Возвращает double

Текущее значение Lifetime в описанных единицах; учитывайте ограничения свойства.

GetOneShotbool
# GetOneShot
C#
public bool GetOneShot();

Возвращает OneShot. Один цикл вместо повторения. Finished сообщает о завершении one-shot, а не каждой ручной остановки непрерывного источника. Взрывной цикл может прекратить рождение до истечения жизни частиц.

Возвращает bool

Текущее значение OneShot в описанных единицах; учитывайте ограничения свойства.

GetPreProcessTimedouble
# GetPreProcessTime
C#
public double GetPreProcessTime();
Возвращает double
GetProcessMaterialMaterial
# GetProcessMaterial
C#
public Material GetProcessMaterial();

Возвращает ProcessMaterial. Материал симуляции, например ParticleProcessMaterial. Управляет поведением, а не поверхностью меша. Для видимого эффекта отдельно нужен draw-pass mesh с материалом поверхности.

Возвращает Material

Текущее значение ProcessMaterial в описанных единицах; учитывайте ограничения свойства.

GetRandomnessRatiofloat
# GetRandomnessRatio
C#
public float GetRandomnessRatio();
Возвращает float
GetSeeduint
# GetSeed
C#
public uint GetSeed();

Возвращает Seed. Зерно случайности частиц. Для сохранения при Restart включите UseFixedSeed либо передайте keepSeed=true. Само зерно не фиксирует все условия и шаги симуляции.

Возвращает uint

Текущее значение Seed в описанных единицах; учитывайте ограничения свойства.

GetSkinSkin
# GetSkin
C#
public Skin GetSkin();
Возвращает Skin
GetSpeedScaledouble
# GetSpeedScale
C#
public double GetSpeedScale();

Возвращает SpeedScale. Масштаб хода симуляции. Ноль приостанавливает обычное продвижение, но не скрывает живую геометрию. Камера и трансформация при LocalCoords могут менять изображение даже на паузе. Не является FPS рендеринга. Ограничение времени в 1.0.0: после длительной паузы SpeedScale = 0 и возврата к 1 проверенный one-shot может выдать Finished, пока GPU-частицы ещё видны. Таймер Entity умножает накопленное время на текущий масштаб скорости; это не GPU-подтверждение истечения жизни. Не возвращайте эффект с меняющимся временем в пул только по этому сигналу. Фиксированная скорость простого one-shot исключает именно этот случай паузы/возобновления; при изменении времени отдельно проверьте политику жизненного цикла.

Возвращает double

Текущее значение SpeedScale в описанных единицах; учитывайте ограничения свойства.

GetSubEmitterEntityPath
# GetSubEmitter
C#
public EntityPath GetSubEmitter();

Возвращает SubEmitter. Путь от этого источника к существующей целевой GpuParticles3D. Назначайте после создания обеих Entity; для рождений нужен режим основного ProcessMaterial. Не создаёт Entity на каждую частицу. Не используйте ссылки на себя/циклы; после изменения иерархии перепроверьте путь.

Возвращает EntityPath

Текущее значение SubEmitter; учитывайте единицы и различие настройки/эффективного результата.

GetTrailLifetimedouble
# GetTrailLifetime
C#
public double GetTrailLifetime();

Возвращает TrailLifetime. Длительность истории в секундах, не Lifetime частицы и не длина исходного меша. Минимум около 0.01; текущий RD-бэкенд ограничивает историю 10 секундами, хотя getter сцены хранит запрос. Изменение перестраивает данные/фазу; учитывайте движение, шаг и бюджет.

Возвращает double

Текущее значение TrailLifetime; учитывайте единицы и различие настройки/эффективного результата.

GetTransformAlignGpuParticles3D.TransformAlignEnum
# GetTransformAlign
C#
public GpuParticles3D.TransformAlignEnum GetTransformAlign();

Возвращает TransformAlign. Выравнивание отображаемой трансформации частицы. YToVelocity — исходный вариант для направленной геометрии/шлейфов в примере. Не меняет скорость и не гарантирует отсутствие скрутки или уплощения на любом пути.

Возвращает GpuParticles3D.TransformAlignEnum

Текущее значение TransformAlign; учитывайте единицы и различие настройки/эффективного результата.

GetTransformAlignAxisRenderingServer.ParticlesTransformAlignAxis
# GetTransformAlignAxis
C#
public RenderingServer.ParticlesTransformAlignAxis GetTransformAlignAxis();
Возвращает RenderingServer.ParticlesTransformAlignAxis
GetTransformAlignChannelFilterRenderingServer.ParticlesTransformAlignCustomSrc
# GetTransformAlignChannelFilter
C#
public RenderingServer.ParticlesTransformAlignCustomSrc GetTransformAlignChannelFilter();
Возвращает RenderingServer.ParticlesTransformAlignCustomSrc
GetUseFixedSeedbool
# GetUseFixedSeed
C#
public bool GetUseFixedSeed();

Возвращает UseFixedSeed. Сохраняет заданный Seed при обычных перезапусках. Помогает повторять эффект, но не гарантирует побитовую детерминированность между драйверами, шагами времени и сборками.

Возвращает bool

Текущее значение UseFixedSeed в описанных единицах; учитывайте ограничения свойства.

GetUseLocalCoordinatesbool
# GetUseLocalCoordinates
C#
public bool GetUseLocalCoordinates();

Возвращает LocalCoords. При true живые частицы следуют трансформации источника; при false рождённые частицы остаются в мировом пространстве при его перемещении. Выбирайте пространство до запуска: переключение живого эффекта не гарантирует сохранения вида.

Возвращает bool

Текущее значение LocalCoords в описанных единицах; учитывайте ограничения свойства.

GetVisibilityAabbAabb
# GetVisibilityAabb
C#
public Aabb GetVisibilityAabb();

Возвращает VisibilityAabb. Пользовательская граница отсечения всего источника. Вне кадра она может скрыть частицы, которые сами были бы видимы. Не является CaptureAabb текущего кадра, ограничителем траектории или коллайдером; охватите весь эффект и размеры мешей.

Возвращает Aabb

Текущее значение VisibilityAabb в описанных единицах; учитывайте ограничения свойства.

IsEmittingbool
# IsEmitting
C#
public bool IsEmitting();

Возвращает Emitting. Управляет рождением новых частиц. False не удаляет живые частицы и не ставит симуляцию на паузу; у one-shot может появиться до исчезновения эффекта. Для нового цикла используйте Restart: повторное true в активном one-shot может отменить уведомление Finished.

Возвращает bool

Текущее значение Emitting в описанных единицах; учитывайте ограничения свойства.

IsTrailEnabledbool
# IsTrailEnabled
C#
public bool IsTrailEnabled();

Возвращает TrailEnabled. Включает историю шлейфа. Нужны совместимые mesh-позы и UseParticleTrails активной поверхности. Текущий RenderingDevice перестраивает данные при назначении этого параметра; не обновляйте его каждый кадр как дешёвую анимацию.

Возвращает bool

Текущее значение TrailEnabled; учитывайте единицы и различие настройки/эффективного результата.

RequestParticlesProcess2 перегрузки
# RequestParticlesProcess · 1/2
C#
public void RequestParticlesProcess(float processTime);

Запрашивает у частиц дополнительное время обработки в течение одного кадра. process_time определяет время обработки частиц при включенном излучении. process_time_residual определяет время обработки частиц при выключенном излучении для моделирования. В сочетании с GpuParticles3D.SpeedScale, установленным на 0.0, это полезно для возможности поиска временной шкалы системы частиц.

Параметры
ИмяТипПо умолчанию
processTimefloat—
# RequestParticlesProcess · 2/2
C#
public void RequestParticlesProcess(float processTime, float processTimeResidual = 0f);

Запрашивает у частиц дополнительное время обработки в течение одного кадра. process_time определяет время обработки частиц при включенном излучении. process_time_residual определяет время обработки частиц при выключенном излучении для моделирования. В сочетании с GpuParticles3D.SpeedScale, установленным на 0.0, это полезно для возможности поиска временной шкалы системы частиц.

Параметры
ИмяТипПо умолчанию
processTimefloat—
processTimeResidualfloat0f
Restart2 перегрузки
# Restart · 1/2
C#
public void Restart();

Очищает/перезапускает цикл и включает эмиссию. Может намеренно прервать живой эффект: ждать Finished перед каждым вызовом не обязательно. Новое зерно выбирается только без UseFixedSeed и без keepSeed.

# Restart · 2/2
C#
public void Restart(bool keepSeed = false);

Очищает/перезапускает цикл и включает эмиссию. Может намеренно прервать живой эффект: ждать Finished перед каждым вызовом не обязательно. Новое зерно выбирается только без UseFixedSeed и без keepSeed.

Параметры
ИмяТипПо умолчанию
keepSeedboolfalse
keepSeed

True сохраняет текущее зерно. False разрешает новое, если UseFixedSeed тоже выключен.

SetAmountvoid
# SetAmount
C#
public void SetAmount(int amount);

Задаёт Amount. Вместимость, не менее 1. Изменение в текущем RenderingDevice освобождает данные частиц и сбрасывает фазу для перевыделения. Для доли эмиссии без смены вместимости используйте AmountRatio. Не является точным числом видимых частиц.

Параметры
ИмяТипПо умолчанию
amountint—
amount

Вместимость, не менее 1. Изменение в текущем RenderingDevice освобождает данные частиц и сбрасывает фазу для перевыделения. Для доли эмиссии без смены вместимости используйте AmountRatio. Не является точным числом видимых частиц.

SetAmountRatiovoid
# SetAmountRatio
C#
public void SetAmountRatio(float ratio);

Задаёт AmountRatio. Доля эмиссии от выделенного Amount; задавайте 0–1. Не уменьшает выделенную вместимость и не удаляет мгновенно живые частицы. Рождение также зависит от материала симуляции.

Параметры
ИмяТипПо умолчанию
ratiofloat—
ratio

Доля эмиссии от выделенного Amount; задавайте 0–1. Не уменьшает выделенную вместимость и не удаляет мгновенно живые частицы. Рождение также зависит от материала симуляции.

SetCollisionBaseSizevoid
# SetCollisionBaseSize
C#
public void SetCollisionBaseSize(float size);
Параметры
ИмяТипПо умолчанию
sizefloat—
SetDrawOrdervoid
# SetDrawOrder
C#
public void SetDrawOrder(GpuParticles3D.DrawOrderEnum order);
Параметры
ИмяТипПо умолчанию
orderGpuParticles3D.DrawOrderEnum—
SetDrawPassMeshvoid
# SetDrawPassMesh
C#
public void SetDrawPassMesh(int pass, Mesh mesh);

Устанавливает Mesh, который рисуется по индексу pass.

Параметры
ИмяТипПо умолчанию
passint—
meshMesh—
SetDrawPassesvoid
# SetDrawPasses
C#
public void SetDrawPasses(int passes);
Параметры
ИмяТипПо умолчанию
passesint—
SetEmittingvoid
# SetEmitting
C#
public void SetEmitting(bool emitting);

Задаёт Emitting. Управляет рождением новых частиц. False не удаляет живые частицы и не ставит симуляцию на паузу; у one-shot может появиться до исчезновения эффекта. Для нового цикла используйте Restart: повторное true в активном one-shot может отменить уведомление Finished.

Параметры
ИмяТипПо умолчанию
emittingbool—
emitting

Управляет рождением новых частиц. False не удаляет живые частицы и не ставит симуляцию на паузу; у one-shot может появиться до исчезновения эффекта. Для нового цикла используйте Restart: повторное true в активном one-shot может отменить уведомление Finished.

SetExplosivenessRatiovoid
# SetExplosivenessRatio
C#
public void SetExplosivenessRatio(float ratio);

Задаёт Explosiveness. Сжатие интервала рождения: 0 распределяет частицы по циклу, 1 собирает рождения в начале всплеска. Не задаёт скорость разлёта или силу ProcessMaterial.

Параметры
ИмяТипПо умолчанию
ratiofloat—
ratio

Сжатие интервала рождения: 0 распределяет частицы по циклу, 1 собирает рождения в начале всплеска. Не задаёт скорость разлёта или силу ProcessMaterial.

SetFixedFpsvoid
# SetFixedFps
C#
public void SetFixedFps(int fps);

Частота фиксированных шагов моделирования, не лимит кадров отрисовки. Положительное значение задаёт шаг 1/FPS. При 0 текущий RD использует переменную дельту для обычных частиц, но trails могут потребовать внутренний фиксированный шаг. По умолчанию 30; пример явно выбирает 60.

Параметры
ИмяТипПо умолчанию
fpsint—
fps

0 либо положительная частота моделирования. Setter сохраняет настройку, не является ограничителем частоты монитора.

SetFractionalDeltavoid
# SetFractionalDelta
C#
public void SetFractionalDelta(bool enable);

Уточняет долю DELTA для рождения частицы внутри шага. Это не общая точность float и не интерполяция изображения. В текущем RD действует при расчёте фазы обычной эмиссии; не приписывайте тот же эффект всем ручным/sub-emission путям.

Параметры
ИмяТипПо умолчанию
enablebool—
enable

Включить дробную дельту шага рождения.

SetInterpToEndvoid
# SetInterpToEnd
C#
public void SetInterpToEnd(float interp);

Значение, передаваемое particle-шейдеру как INTERPOLATE_TO_END. Ограничивается диапазоном 0–1. Готовый ParticleProcessMaterial использует его в расчёте возраста; собственный ShaderMaterial должен учитывать его явно. Это не длительность Lifetime и не интерполяция кадров Interpolate.

Параметры
ИмяТипПо умолчанию
interpfloat—
interp

Значение 0–1; выход за диапазон приводится к ближайшей границе.

SetInterpolatevoid
# SetInterpolate
C#
public void SetInterpolate(bool enable);

Интерполяция отображения между шагами моделирования. Не заменяет FixedFps, не добавляет вызовы process() и не является InterpToEnd. В текущем RD влияет на остаток времени при подготовке данных экземпляров.

Параметры
ИмяТипПо умолчанию
enablebool—
enable

Включить интерполяцию отображения.

SetLifetimevoid
# SetLifetime
C#
public void SetLifetime(double secs);

Задаёт Lifetime. Время жизни/цикла в секундах, строго больше нуля. Вместе с Amount и расписанием рождения влияет на плотность; не равно времени до прекращения Emitting или точному числу кадров.

Параметры
ИмяТипПо умолчанию
secsdouble—
secs

Время жизни/цикла в секундах, строго больше нуля. Вместе с Amount и расписанием рождения влияет на плотность; не равно времени до прекращения Emitting или точному числу кадров.

SetOneShotvoid
# SetOneShot
C#
public void SetOneShot(bool enable);

Задаёт OneShot. Один цикл вместо повторения. Finished сообщает о завершении one-shot, а не каждой ручной остановки непрерывного источника. Взрывной цикл может прекратить рождение до истечения жизни частиц.

Параметры
ИмяТипПо умолчанию
enablebool—
enable

Один цикл вместо повторения. Finished сообщает о завершении one-shot, а не каждой ручной остановки непрерывного источника. Взрывной цикл может прекратить рождение до истечения жизни частиц.

SetPreProcessTimevoid
# SetPreProcessTime
C#
public void SetPreProcessTime(double secs);
Параметры
ИмяТипПо умолчанию
secsdouble—
SetProcessMaterialvoid
# SetProcessMaterial
C#
public void SetProcessMaterial(Material material);

Задаёт ProcessMaterial. Материал симуляции, например ParticleProcessMaterial. Управляет поведением, а не поверхностью меша. Для видимого эффекта отдельно нужен draw-pass mesh с материалом поверхности.

Параметры
ИмяТипПо умолчанию
materialMaterial—
material

Материал симуляции, например ParticleProcessMaterial. Управляет поведением, а не поверхностью меша. Для видимого эффекта отдельно нужен draw-pass mesh с материалом поверхности.

SetRandomnessRatiovoid
# SetRandomnessRatio
C#
public void SetRandomnessRatio(float ratio);
Параметры
ИмяТипПо умолчанию
ratiofloat—
SetSeedvoid
# SetSeed
C#
public void SetSeed(uint seed);

Задаёт Seed. Зерно случайности частиц. Для сохранения при Restart включите UseFixedSeed либо передайте keepSeed=true. Само зерно не фиксирует все условия и шаги симуляции.

Параметры
ИмяТипПо умолчанию
seeduint—
seed

Зерно случайности частиц. Для сохранения при Restart включите UseFixedSeed либо передайте keepSeed=true. Само зерно не фиксирует все условия и шаги симуляции.

SetSkinvoid
# SetSkin
C#
public void SetSkin(Skin skin);
Параметры
ИмяТипПо умолчанию
skinSkin—
SetSpeedScalevoid
# SetSpeedScale
C#
public void SetSpeedScale(double scale);

Задаёт SpeedScale. Масштаб хода симуляции. Ноль приостанавливает обычное продвижение, но не скрывает живую геометрию. Камера и трансформация при LocalCoords могут менять изображение даже на паузе. Не является FPS рендеринга. Ограничение времени в 1.0.0: после длительной паузы SpeedScale = 0 и возврата к 1 проверенный one-shot может выдать Finished, пока GPU-частицы ещё видны. Таймер Entity умножает накопленное время на текущий масштаб скорости; это не GPU-подтверждение истечения жизни. Не возвращайте эффект с меняющимся временем в пул только по этому сигналу. Фиксированная скорость простого one-shot исключает именно этот случай паузы/возобновления; при изменении времени отдельно проверьте политику жизненного цикла.

Параметры
ИмяТипПо умолчанию
scaledouble—
scale

Масштаб хода симуляции. Ноль приостанавливает обычное продвижение, но не скрывает живую геометрию. Камера и трансформация при LocalCoords могут менять изображение даже на паузе. Не является FPS рендеринга. Ограничение времени в 1.0.0: после длительной паузы SpeedScale = 0 и возврата к 1 проверенный one-shot может выдать Finished, пока GPU-частицы ещё видны. Таймер Entity умножает накопленное время на текущий масштаб скорости; это не GPU-подтверждение истечения жизни. Не возвращайте эффект с меняющимся временем в пул только по этому сигналу. Фиксированная скорость простого one-shot исключает именно этот случай паузы/возобновления; при изменении времени отдельно проверьте политику жизненного цикла.

SetSubEmittervoid
# SetSubEmitter
C#
public void SetSubEmitter(EntityPath path);

Задаёт SubEmitter. Путь от этого источника к существующей целевой GpuParticles3D. Назначайте после создания обеих Entity; для рождений нужен режим основного ProcessMaterial. Не создаёт Entity на каждую частицу. Не используйте ссылки на себя/циклы; после изменения иерархии перепроверьте путь.

Параметры
ИмяТипПо умолчанию
pathEntityPath—
path

Путь от этого источника к существующей целевой GpuParticles3D. Назначайте после создания обеих Entity; для рождений нужен режим основного ProcessMaterial. Не создаёт Entity на каждую частицу. Не используйте ссылки на себя/циклы; после изменения иерархии перепроверьте путь.

SetTrailEnabledvoid
# SetTrailEnabled
C#
public void SetTrailEnabled(bool enabled);

Задаёт TrailEnabled. Включает историю шлейфа. Нужны совместимые mesh-позы и UseParticleTrails активной поверхности. Текущий RenderingDevice перестраивает данные при назначении этого параметра; не обновляйте его каждый кадр как дешёвую анимацию.

Параметры
ИмяТипПо умолчанию
enabledbool—
enabled

Включает историю шлейфа. Нужны совместимые mesh-позы и UseParticleTrails активной поверхности. Текущий RenderingDevice перестраивает данные при назначении этого параметра; не обновляйте его каждый кадр как дешёвую анимацию.

SetTrailLifetimevoid
# SetTrailLifetime
C#
public void SetTrailLifetime(double secs);

Задаёт TrailLifetime. Длительность истории в секундах, не Lifetime частицы и не длина исходного меша. Минимум около 0.01; текущий RD-бэкенд ограничивает историю 10 секундами, хотя getter сцены хранит запрос. Изменение перестраивает данные/фазу; учитывайте движение, шаг и бюджет.

Параметры
ИмяТипПо умолчанию
secsdouble—
secs

Длительность истории в секундах, не Lifetime частицы и не длина исходного меша. Минимум около 0.01; текущий RD-бэкенд ограничивает историю 10 секундами, хотя getter сцены хранит запрос. Изменение перестраивает данные/фазу; учитывайте движение, шаг и бюджет.

SetTransformAlignvoid
# SetTransformAlign
C#
public void SetTransformAlign(GpuParticles3D.TransformAlignEnum align);

Задаёт TransformAlign. Выравнивание отображаемой трансформации частицы. YToVelocity — исходный вариант для направленной геометрии/шлейфов в примере. Не меняет скорость и не гарантирует отсутствие скрутки или уплощения на любом пути.

Параметры
ИмяТипПо умолчанию
alignGpuParticles3D.TransformAlignEnum—
align

Выравнивание отображаемой трансформации частицы. YToVelocity — исходный вариант для направленной геометрии/шлейфов в примере. Не меняет скорость и не гарантирует отсутствие скрутки или уплощения на любом пути.

SetTransformAlignAxisvoid
# SetTransformAlignAxis
C#
public void SetTransformAlignAxis(RenderingServer.ParticlesTransformAlignAxis align);
Параметры
ИмяТипПо умолчанию
alignRenderingServer.ParticlesTransformAlignAxis—
SetTransformAlignChannelFiltervoid
# SetTransformAlignChannelFilter
C#
public void SetTransformAlignChannelFilter(RenderingServer.ParticlesTransformAlignCustomSrc channelFilter);
Параметры
ИмяТипПо умолчанию
channelFilterRenderingServer.ParticlesTransformAlignCustomSrc—
SetUseFixedSeedvoid
# SetUseFixedSeed
C#
public void SetUseFixedSeed(bool useFixedSeed);

Задаёт UseFixedSeed. Сохраняет заданный Seed при обычных перезапусках. Помогает повторять эффект, но не гарантирует побитовую детерминированность между драйверами, шагами времени и сборками.

Параметры
ИмяТипПо умолчанию
useFixedSeedbool—
useFixedSeed

Сохраняет заданный Seed при обычных перезапусках. Помогает повторять эффект, но не гарантирует побитовую детерминированность между драйверами, шагами времени и сборками.

SetUseLocalCoordinatesvoid
# SetUseLocalCoordinates
C#
public void SetUseLocalCoordinates(bool enable);

Задаёт LocalCoords. При true живые частицы следуют трансформации источника; при false рождённые частицы остаются в мировом пространстве при его перемещении. Выбирайте пространство до запуска: переключение живого эффекта не гарантирует сохранения вида.

Параметры
ИмяТипПо умолчанию
enablebool—
enable

При true живые частицы следуют трансформации источника; при false рождённые частицы остаются в мировом пространстве при его перемещении. Выбирайте пространство до запуска: переключение живого эффекта не гарантирует сохранения вида.

SetVisibilityAabbvoid
# SetVisibilityAabb
C#
public void SetVisibilityAabb(Aabb aabb);

Задаёт VisibilityAabb. Пользовательская граница отсечения всего источника. Вне кадра она может скрыть частицы, которые сами были бы видимы. Не является CaptureAabb текущего кадра, ограничителем траектории или коллайдером; охватите весь эффект и размеры мешей.

Параметры
ИмяТипПо умолчанию
aabbAabb—
aabb

Пользовательская граница отсечения всего источника. Вне кадра она может скрыть частицы, которые сами были бы видимы. Не является CaptureAabb текущего кадра, ограничителем траектории или коллайдером; охватите весь эффект и размеры мешей.

Сигналы и события1

FinishedСобытие
# Finished
C#
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Поле
# MaxDrawPasses
C#
public const long MaxDrawPasses = 4;

Максимальное поддерживаемое количество проходов рисования.

GpuParticles3D.DrawOrderEnum

ЗначениеОписание
Index = 0

Частицы рисуются в порядке испускания.

Lifetime = 1

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

ReverseLifetime = 2

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

ViewDepth = 3

Частицы рисуются в порядке глубины.

GpuParticles3D.EmitFlags

ЗначениеОписание
Color = 8

Частица начинается с указанного цвета.

Custom = 16

Частица начинается с указанных данных CUSTOM.

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 — относительно вектора скорости.

ТАМОЖЕННАЯ ПОМОЩЬ В СВЯЗИ

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

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

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

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