This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Режимы вывода изображения
Физика
Браузер SDK 2
Лицензирование и типы лицензий
Дополнения (Add-Ons)
Демонстрационные проекты
API Samples
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Системы частиц

Система частиц — действительно универсальная техника, позволяющая создавать сложные движущиеся структуры, производящие динамические и «нечеткие» эффекты. Эти структуры используются для моделирования абстрактных эффектов огня, дыма, взрывов, электричества, фонтанов, ракетных следов, стая, магии и многих других. Все эти эффекты трудно воспроизвести с помощью традиционных жестких объектов: частицы представлены не набором примитивных элементов поверхности, а точечными массами, образующими объем примитивов частиц. Еще одна отличительная особенность — частицы не статичны — они могут со временем менять не только свое положение, но и форму.

Огонь и дым моделируются с помощью систем частиц

Система частиц состоит из трех основных сущностей:

  • Эмиттер — источник, испускающий частицы в соответствии со значениями, установленными в параметрах группы Emitter.
  • Сами частицы, которые испускаются согласно заранее заданному поведению после испускания.
  • Дополнительные физические эффекты, применяемые к частицам и влияющие на их поведение.

Смотрите также#

  • Материал particles_base для настройки внешнего вида частиц
  • Класс ObjectParticles для управления частицами через API
  • Набор сэмплов, находящихся в комплекте Art Samples

Создание частиц#

Чтобы создать частицы, выполните следующие действия:

  1. В строке меню щелкните Create -> Particle System -> Particles.

  2. Поместите объект Particles где-нибудь в мире.
  3. Настройте параметры частиц.

Параметры излучателя#

Поведение эмиттера частиц задается в параметрах Emitter.

Clear On Enable Разрешает повторную инициализацию системы частиц каждый раз при ее включении. Когда эта опция отключена, включение системы частиц восстанавливает состояние, в котором она была до выключения.
Emitter Enabled Включает эмиттер.
Emitter Sync Включает синхронизацию дочерней системы частиц с родительской, даже если для дочерней системы частиц опция Emitter Enabled отключена.
Emitter Shape

Форма объема, внутри которого генерируются частицы:

Point — частицы испускаются из одной точки.
Sphere — частицы генерируются в случайных положениях внутри сферы с заданным радиусом.
Cylinder — частицы генерируются в случайных положениях внутри цилиндра с указанным радиусом и высотой.
Box — частицы генерируются в случайных положениях внутри куба, который имеет заданную ширину (ось X), высоту (ось Y) и глубину (ось Z).
Spark — этот эмиттер генерирует частицы в точках столкновения родительских частиц. Система частиц Spark должна быть дочерней нодой системы частиц, которая генерирует исходные частицы. Излучатель искры можно использовать для моделирования каскадов частиц.
Random — частицы генерируются на поверхности произвольного родительского меша (mesh). Система частиц должна быть дочерней нодой меша. Во время рендеринга случайные вершины меша выбираются для генерации частиц.
Emitter Size Размер источника частиц. Количество полей (будь то радиус или граничные размеры) зависит от выбранной формы.
Particles Type
  • Billboard представляют собой вращающиеся квадратные плоскости, ориентированные на камеру. Например, частицы-билборды можно использовать для создания дыма.
  • Частицы Flat перпендикулярны оси Z своей системы частиц. Они хороши для имитации некоторых эффектов на плоских поверхностях, таких как вода.
  • Point частицы подобны типу билборда. Они также всегда смотрят в камеру, но имеют фиксированную ориентацию по экрану.
  • Частицы Length — это частицы билборда, которые можно растягивать в направлении своего движения. Stretching — регулируемый коэффициент. С помощью этого типа частиц можно эффективно моделировать искры и брызги.
  • Random частицы — это квадратные частицы, случайно ориентированные в пространстве. С помощью этого типа частиц удачно имитируется листопад.
  • Частицы Route можно использовать для создания следов от движущихся объектов (например, следа за кораблем). Они похожи на предыдущую реализацию плоских частиц.
  • Частицы Chain — это частицы-билборды, которые образуют непрерывный визуально непрерывный поток. Их длина напрямую зависит от интенсивности излучения эмиттера. Этот тип частиц предназначен для использования с Emitter Shift, создавая после себя цепной след.
Sequence Order

Порядок рендеринга систем частиц, особенно при создании сложных эффектов, таких как выстрелы (с дульной вспышкой, дымом и самим выстрелом, каждый из которых представлен отдельной системой частиц). Этот параметр очень похож на Rendering Order в настройках материалов. Но он позволяет установить последовательность рендеринга внутри иерархии системы частиц, чтобы избежать таких ситуаций, когда дым от далекого выстрела рендерится поверх огня выстрела переднего плана.

  • 0 означает сортировку по умолчанию в соответствии с ограничивающими рамками систем частиц.
  • Частицы с наименьшим порядковым номером визуализируются первыми и покрываются частицами с наивысшим порядковым номером, которые визуализируются последними и выше других.
Emitter Shift Включение этого флажка заставляет эмиттер генерировать частицы только тогда, когда система частиц движется.
Emitter Continuous Включает непрерывные частицы, которые следуют за смещением эмиттера.
Texture Atlas

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

Примечание
Чтобы использовать эту опцию, Анимация текстуры должны быть отключена.
Texture Atlas Size Размер текстурного атласа.
Random Flip X

Переворот случайно испускаемых частиц по горизонтали (по оси X).

Random Flip Y

Переворот случайно испускаемых частиц по вертикали (по оси Y).

Warming On Start Включает и выключает инициализацию системы частиц с иллюзией предшествующей активности.
Система частиц развивается со временем, поэтому после встречи с ней в виртуальном мире система только начинает работать, частица за частицей, пока вся система не приобретет желаемый вид. Когда персонаж выйдет на поляну, мы увидим, как постепенно разгорается огонь. Стартовый прогрев для частиц позволяет сразу рендерить полноценную систему частиц.
Техническая реализация стартового прогрева следующая: когда система частиц инициализируется при столкновении, ее жизнь вычисляется, начиная с рождения первой частицы до ее исчезновения. После этого система частиц считается развитой и отображается в этом состоянии. Расчеты производятся с фиксированной частотой кадров 25 кадров в секунду, что является минимумом, необходимым для правильного моделирования систем частиц (см. также информацию о корреляции между частотой кадров).
Стартовый прогрев можно включить без какого-либо негативного влияния на любые системы частиц, кроме огромных.
Max Warming Time (Sec) Максимальное время прогрева системы частиц.
Spawn Rate Количество действий возрождения в секунду. Значение определяет, сколько раз определенное количество частиц будет создано за одну секунду. Например, значение 5 соответствует 5 действиям появления в секунду. 0 приводит к отсутствию частиц вообще.
Number Per Spawn Количество частиц, которые будут порождаться одновременно каждый раз в соответствии с параметром Spawn Rate.
Spawn Threshold

Порог количества частиц в зависимости от скорости родительских частиц.
Этот параметр используется для дополнительной синхронизации количества частиц, порождаемых spark а также random эмиттеры с родительской системой частиц.

Примечание
Порог для эмиттера random функционирует только с системой частиц в качестве родительской ноды.
  • При значении 0 частота появления эмиттера spark не зависит от родительской системы частиц.
  • Чем выше пороговое значение, тем выше должна быть скорость исходных частиц для возникновения искры. Если он недостаточно высок, то частиц будет мало, если таковые будут.
Limit Per Spawn Общее максимальное количество частиц, испускаемых за раз. Этот параметр указывает количество частиц, которые могут одновременно существовать в мире. Другими словами, количество существующих в мире частиц не может превышать предельное значение. Например, если значение Number per Spawn равно 10, а значение Limit Per Spawn равно 5, будет испущено 5 частиц. И никакие частицы не будут порождаться, пока существуют предыдущие.
Life Time (Sec) Продолжительность существования частиц после испускания в секундах. Этот параметр также имеет значение Spread, которое создает разнообразие значения Life Time в секундах.
Delay Эта опция определяет время, которое должно пройти между инициализацией родительской системы и инициализацией дочерней ноды. Если задана какая-либо задержка, родительская система начинает испускать частицы, а после задержки активируется генерация дочерних частиц. Если у системы частиц нет дочерних элементов, задержка определяет время, по истечении которого частицы испускаются. Этот параметр также имеет значение Spread, которое создает различную задержку инициализации частицы в секундах.
Period

Продолжительность паузы между циклами генерации в секундах.

  • Если установлено значение 0, частицы порождаются постоянно, без пауз.
  • Если указана бесконечность (inf), эмиттер частиц становится неактивным после одного цикла генерации.

Этот параметр также имеет значение Spread, которое создает вариацию значения периода в секундах.

Duration

Продолжительность цикла генерации, в течение которого происходит испускание, в секундах.

  • Чем выше значение, тем дольше периоды генерации частиц.
  • Установка значения 0 означает, что частицы порождаются одновременно в бесконечно малом интервале времени (т.е. в течение одного кадра). Это значение можно использовать, например, когда вам нужно смоделировать выстрел из одночастичной пушки.

Этот параметр также имеет значение Spread, которое создает разнообразие значений Duration, в секундах.

Spread (+/-) Опция Spread вводит дополнительную модуляцию соответствующего параметра. Он представляет собой диапазон значений, которые могут быть случайным образом добавлены или вычтены из указанного значения параметра.

Поведение после испускания#

Этот набор параметров определяет, как частицы ведут себя после испускания:

Параметры настройки значений#

Большинство параметров в этом разделе имеют несколько вариантов установки значения:

  • Const — значение точное и не меняется с течением времени.
  • Between Const — задается интервал, из которого выбирается случайное значение для каждого экземпляра.
  • Curve — значение параметра изменяется во времени в зависимости от кривой, задаваемой в Редакторе кривых.

    Примечание
    При малых значениях (близких к 0), кривые могут терять в точности, если значение Max Value существенно больше, чем фактическое максимальное значение на кривой. Чтобы этого избежать надо установить Max Value максимально приближенным к фактическому максимуму.
  • Between Curve — есть две кривые, установленные в Редакторе кривых, которые определяют пределы, и в каждый момент времени в этих пределах берется случайное значение. Значение параметра изменяется со временем на основе этого случайно сгенерированного набора значений.

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

Depth Sort Сортировка по глубине требуется, если частицы используют альфа-смешивание (кроме аддитивного). Если этот параметр не включен, то на основе данных буфера глубины непрозрачные объекты, расположенные дальше, могут неправильно отображаться перед прозрачными частицами. При сортировке по глубине геометрия отображается в порядке от задней части к передней, что исключает визуальные артефакты.
Emitter Based Включение этой опции заставляет частицы двигаться вместе с эмиттером.
Position Координаты положения частицы относительно излучателя по осям X, Y и Z.
Gravity

Сила тяжести, действующая на частицы по осям X, Y и Z.

  • Положительные значения равны вектору силы тяжести, направленному вверх.
  • Отрицательные значения равны вектору силы тяжести, направленному вниз.

Вращение ноды системы частиц не влияет на вектор гравитации.

Direction Направление, в котором движутся все испускаемые частицы, образуя поток, заданное по осям X, Y и Z.
Velocity Скорость движения частиц в заданном направлении, в единицах (unit) в секунду. Чтобы поток выглядел естественно, конечная скорость каждой отдельной частицы может отличаться, если задан диапазон значений.
Linear Damping Уменьшение линейной скорости частиц со временем. Этот параметр используется для моделирования эффекта трения среды для частиц.
Angle

Угол ориентации частиц в пространстве, в градусах.
Если значение угла установлено на 180 градусов, частицы будут случайным образом ориентированы во всех направлениях.

Примечание
Эта опция недоступна для частиц типов point и length.
Rotation Speed

Угловая скорость частиц в градусах в секунду.

  • Положительные числа вращают частицы по часовой стрелке.
  • Отрицательные числа вращают частицы против часовой стрелки.
Radius Радиус (половинный размер) частицы.
Increase In Radius

Увеличение размера частицы в единицах в секунду.

  • Положительные числа приводят к увеличению роста частиц после их появления. Например, в небе растут и разлетаются фейерверки.
  • Отрицательные числа определяют постепенно уменьшающиеся частицы. Например, чтобы имитировать дым, рассеивающийся в воздухе.
Screen Size Mode

Режим размера на экране, который будет использоваться для частиц. Этот режим определяет, следует ли ограничивать максимальный и минимальный размеры испускаемых частиц относительно размера экрана или нет (например, чтобы избежать случаев, когда снежинки или капли дождя закрывают обзор, если они находятся слишком близко к камере или когда они становятся невидимыми по мере увеличения расстояния до камеры). Доступны три режима:

  • None — минимальный и максимальный размеры частиц на экране не ограничены.
  • Width — минимальный и максимальный размеры частиц на экране ограничены относительно ширины экрана.
  • Height — минимальный и максимальный размеры частиц на экране ограничены относительно высоты экрана.
Screen Min Size

Минимальный размер на экране, устанавливаемый для частиц, ограничивающий минимальную долю экрана, которую может занимать одна частица:

  • 0 (минимальный) — частица имеет нулевой размер и поэтому невидима на экране (вообще не занимает места).
  • 1 (максимум) — частица занимает весь экран.
Screen Max Size

Максимальный размер на экране, устанавливаемый для частиц, ограничивающий максимальную долю экрана, которую может занимать одна частица:

  • 0 (минимальный) — частица имеет нулевой размер и поэтому невидима на экране (вообще не занимает места).
  • 1 (максимум) — частица занимает весь экран.
Length Stretch

Растяжка биллборда частиц, доступная для Length Particles. При значении 0 частица длины представляет собой просто квадратный биллборд. При увеличении значения частицы растягиваются в направлении их движения. Результат рассчитывается путем умножения значения растяжения на скорость частицы. Таким образом, чем выше скорость, тем сильнее растягиваются частицы в направлении своего движения, в то время как другая сторона остается той же ширины.

Sparks Length Stretch = 0
Sparks Length Stretch = 0.3
Length Flattening

Делает Length Particles не ориентированным на камеру, как обычные частицы билборда, а более перпендикулярным оси Z. При значении 0 частицы не сплющиваются. При максимальном значении 1 частицы будут плоскими (перпендикулярно оси Z) при испускании.

Length Flattening = 0
Length Flattening = 1

Взаимодействие#

Взаимодействие частиц ограничивается применением силы и столкновения с внешними объектами. Есть два метода обнаружения столкновения с внешними объектами: с помощью параметра Physics Intersection или параметра Collision.

Примечание
Столкновения частиц с частицами не проверяются, поскольку обнаружение столкновений — дорогостоящая операция.

Physical Mask Для более избирательного взаимодействия систем частиц с физическими нодами используется битовая маска physical. Эта битовая маска устанавливается как для системы частиц, так и для силы. Эти маски должны иметь хотя бы одно битовое соответствие, иначе не будет никакого взаимодействия. Другие части маски могут соответствовать маскам других сил, обеспечивая тем самым полный контроль над интеграцией сцены.
Particles Field Mask

Битовая маска для взаимодействия с нодами Particles Field (Deflectors и Spacers). Испускаемые частицы будут подвержены влиянию Particles Field только в том случае, если их маски совпадают (по крайней мере, на один бит).

Physical Mass

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

Примечание
Параметр Physical Mass не влияет на другие вычисления.
  • При массе 0 траектория системы частиц не подвержена никаким внешним силам.
  • Чем больше масса, тем тяжелее частицы и тем меньше физических нод может ослабить их поток, растянуть их или иным образом повлиять на них.
Restitution

Сила, с которой частицы отскакивают от препятствия. Эта опция очень удобна для моделирования некоторых водных эффектов, включая брызги. Сила эффекта отскока зависит как от параметра restitution самих частиц, так и от значения параметра поверхности restitution, установленного для сталкивающегося объекта (Properties -> Parameters -> Restitution), а также от значения restitution, установленного для Particles Deflector.

  • При минимальном значении 0 частицы не отскакивают.
  • При максимальном значении 1 угол падения частиц равен углу их отскока.
Roughness

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

  • Минимальное значение 0 означает, что траектория всех частиц после столкновения одинакова.
  • Максимальное значение 1 означает, что частицы разлетаются в разные стороны и немного под углом. Этот угол, возникающий из-за шероховатости частиц, также влияет на отскакивание. При контакте частиц с Particles Deflector также учитывается его значение roughness.
Collision

Включает обнаружение столкновений по всей форме частицы.
Если частицы достаточно большие, этот метод предпочтительнее, чем Intersection, так как обеспечивает более высокую степень визуального реализма: частицы реагируют в соответствии с заданными параметрами, когда их край или вершина соприкасаются с объектом. Расчеты столкновений обходятся дороже, поэтому системам с большими частицами следует осторожно использовать эту опцию.

Столкновения обнаруживаются только для совпадающих битовых масок collision.

Intersection

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

Физические пересечения обнаруживаются для совпадающих битовых масок Physics Intersection.

Destroy In Collision/Intersection Включает и выключает отбраковку частиц, которые уже подверглись столкновению или пересечению.

Рендеринг в текстуру#

Частицы могут быть визуализированы в процедурную текстуру, которая будет использоваться объектами Orthographic Decal или Field Height. Эту функцию можно использовать, например, для создания эффектов следа от корабля или брызг масла.

Доступны следующие настройки:

Rendering Включает рендеринг частиц в процедурную текстуру.
Positioning

Определяет режим позиционирования, который будет использоваться для дочерних нод (декаль или поле) с использованием процедурной текстуры, в которую визуализируется система частиц. Доступны следующие значения:

  • Manual — положение дочерней ноды декали / поля можно изменить вручную
  • Auto — положение дочерней ноды декали / поля, использующей процедурную текстуру, автоматически определяется положением системы частиц и не может быть изменено вручную
Примечание
Вступает в силу только тогда, когда в Procedural Parenting выбрано значение Children.
Parenting

Определяет взаимосвязь между системой частиц и нодой типа Decal / Field, использующей процедурную текстуру, в которой отображается система частиц:

  • Parent — нода декали / поля является родителем системы частиц
  • Children — нода декали / поля является дочерним элементом системы частиц
Resolution

Задает разрешение процедурной текстуры, в которой визуализируются частицы.

  • 128x128
  • 256x256
  • 512x512
  • 1024x1024
  • 2048x2048
  • 4096x4096
  • 8192x8192
  • Custom активирует дополнительные поля для указания настраиваемого разрешения.

Дополнительные физические эффекты#

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

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

Силы#

Вы можете применить действие физических сил к частицам внутри сферического объема, чтобы повлиять на их движение и поведение. Для этого просто добавьте ноду Physical Force, отрегулируйте необходимые настройки и настройте Physical Mask для выборочного воздействия.

Примечание
По умолчанию массы частиц равны нулю, чтобы на них воздействовала Physical Force, частицы должны иметь ненулевую массу, поэтому не забудьте установить параметр Physical Mass.

Шумы#

Вы можете применить физический шум, добавив поток распределения, основанный на объемной текстуре шума внутри объема кубовидной формы. Для этого просто добавьте ноду Physical Noise, отрегулируйте необходимые настройки и настройте Physical Masks для выборочного включения взаимодействия.

Примечание
По умолчанию массы частиц равны нулю, чтобы на них воздействовал Physical Noise, частицы должны иметь ненулевую массу, поэтому не забудьте установить параметр Physical Mass.

Дефлекторы#

Иногда необходимо создать препятствие для частиц, чтобы заставить их изменить свою траекторию, отскакивая или скользя по определенной поверхности. Для этой цели вы можете использовать ноду Particles Deflector, поверхность, которая не имеет визуального представления, но физически взаимодействует с системами частиц, оставляя другие объекты незатронутыми. Вы можете управлять взаимодействием между частицами и дефлекторами с помощью маски Particles Field: дефлектор будет взаимодействовать с частицами, генерируемыми системой частиц, если они оба имеют совпадающие маски Particles Field (по крайней мере, один бит).

Дополнительная информация о Particles Deflectorпредставлена в этой статье.

Иерархия нод систем частиц#

Для создания сложных эффектов необходимо, чтобы все системы частиц были синхронизированы во времени. Установка системы частиц в качестве родительской ноды приводит к следующему:

  • Все системы частиц, которые являются дочерними нодами, синхронизированы относительно своих родительских систем частиц. Если у дочерних элементов есть собственные дети, они все равно синхронизируются с основной родительской системой, которая стоит в самом верху иерархии.
  • При создании новой дочерней системы частиц ее необходимо синхронизировать с родительской, отключив и снова включив родительский эмиттер (вкладка Node→ поле Enabled). В этот момент каждая из дочерних систем инициализируется со своими собственными Параметрами эмиттера (такими как продолжительность излучения, продолжительность паузы генерации, и задержка инициализации).
  • Отключение или включение родительского эмиттера (вкладка Node→ поле Enabled) влияет на все дочерние системы частиц: они синхронно прекращают или начинают испускать частицы (испускаемые частицы доживают до конца своего времени существования).
  • Отключение или включение родительской ноды (вкладка Node→ поле Enabled) также влияет на все дочерние ноды: все системы частиц в иерархии выключаются и включаются — и сохраняют то же состояние, которое было в момент их выключения.

Синхронизация нескольких систем частиц#

Чтобы синхронизировать несколько систем частиц, например, чтобы создать эффект выстрела (с тремя системами частиц: дульная вспышка, дым и пуля), вы можете сделать следующее:

  1. Создайте родительскую систему частиц, которая будет использоваться исключительно для целей синхронизации (вы даже можете отключить ее поверхность). Указанный для нее временной интервал в поле Duration должен охватывать интервалы продолжительности и интервалы задержки (если есть) всех дочерних систем частиц. Остальные параметры (Spawn Rate и т.д.) значения не имеют.

  2. Добавьте дочерние системы частиц. Для них может быть задано любое время Duration (но оно должно быть меньше, чем у родительской ноды). Например, чтобы синхронизировать все дочерние системы частиц одновременно и порождать только одну частицу, вы можете установить следующее:

Оптимизация симуляции#

Обновление в каждом кадре огромного количества объектов, которые расположены далеко от камеры и поэтому трудно различимы или наблюдаются как некая масса, является пустой тратой ресурсов.

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

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

Вкладка Parameters → раздел Periodic Update
FPS When Object Is Rendered To Viewport Значение частоты обновления для случая, когда объект отображается в области просмотра.
FPS When Only Object Shadows Are Rendered Значение частоты обновления, когда сам объект находится за пределами области просмотра, и только его тень отображается в области просмотра.
FPS When Object Is Not Rendered At All Значение частоты обновления, когда объект и его тень не отображаются в области просмотра.
Update Distance Limit Расстояние от камеры, в пределах которого объект должен обновляться.
Примечание
Эти значения не являются фиксированными и могут быть изменены движком в любое время для обеспечения наилучшей производительности.

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

Если ваш проект, например, содержит систему невидимых частиц (например, с использованием маски Viewport) и некоторую логику, прикрепленную к ее обновлению (например, порождение некоторых видимых частиц при столкновении с объектами), эта логика не будет работать, поскольку система частиц может обновляться по сниженной цене или вообще не обновляться. Чтобы разрешить обновление таких объектов независимо от их видимости, вы можете установить значение infinity для параметра Update Distance Limit и соответствующих значений частоты обновления.

Частицы на основе меша (mesh)#

Можно создавать системы частиц на основе меша. Для этого нужно добавить Mesh Cluster как дочернюю ноду системы частиц (ObjectParticles). После этого эмиттер начинает автоматически генерировать меши.

Примечание
Измените маску Viewport для частиц, если вы не хотите создавать их вместе с мешами.

Частицы на основе Mesh Cluster
Последнее обновление: 16.08.2024
Build: ()