Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Система частиц, используемая для имитации огня, созданная в 3dengfx .
Специальная система частиц, используемая для моделирования галактики, созданная в 3dengfx.
Система частиц, используемая для имитации взрыва бомбы, созданная в программе particleIllusion .

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

Представленный в фильме 1982 года « Звездный путь II: Гнев Хана» для вымышленного «эффекта Генезиса» [1], другие примеры включают воспроизведение явлений огня , взрывов , дыма , движущейся воды (например, водопада ), искр , падающих листьев , рок падает, облака , туман , снег , пыль , метеоритные хвосты, звезд и галактик , или абстрактные визуальные эффекты , такие как светящиеся следы, магиязаклинания и т. д. - в них используются частицы, которые быстро исчезают, а затем повторно испускаются из источника эффекта. Другой метод может быть использован для вещей, которые содержат много прядей, таких как мех , волосы и трава, включая одновременную визуализацию всей жизни частицы, которую затем можно нарисовать и обработать как единую прядь рассматриваемого материала.

Системы частиц могут быть двухмерными или трехмерными .

Типовая реализация [ править ]

Воспроизвести медиа
Динамическое моделирование частиц воздуха (Bifröst)

Обычно положение и движение системы частиц в трехмерном пространстве контролируется так называемым излучателем . Эмиттер действует как источник частиц, и его положение в трехмерном пространстве определяет, где они генерируются и куда движутся. Обычная трехмерная сеткаобъект, например куб или плоскость, можно использовать в качестве излучателя. Эмитент привязал к нему набор параметров поведения частицы. Эти параметры могут включать скорость нереста (сколько частиц генерируется за единицу времени), вектор начальной скорости частиц (направление, в котором они испускаются при создании), время жизни частицы (время, в течение которого каждая отдельная частица существует до исчезновения), цвет частиц и многое другое. Обычно все или большинство из этих параметров являются "нечеткими" - вместо точного числового значения художник указывает центральное значение и допустимую степень случайности по обе стороны от центра (т.е. среднее время жизни частицы может быть 50. кадры ± 20%). При использовании сетчатого объекта в качестве эмиттера вектор начальной скорости часто устанавливается нормальным. на отдельную грань (а) объекта, заставляя частицы "распыляться" непосредственно с каждой стороны, но это необязательно.

Цикл обновления типичной системы частиц (который выполняется для каждого кадра анимации) можно разделить на два отдельных этапа: этап обновления / моделирования параметров и этап визуализации .

Этап моделирования [ править ]

На этапе моделирования количество новых частиц, которые должны быть созданы, рассчитывается на основе частоты появления и интервала между обновлениями, и каждая из них создается в определенной позиции в трехмерном пространстве на основе положения эмиттера и указанной области нереста. Каждый из параметров частицы (т.е. скорость, цвет и т. Д.) Инициализируется в соответствии с параметрами эмиттера. При каждом обновлении все существующие частицы проверяются, чтобы увидеть, не превысили ли они свое время жизни, и в этом случае они удаляются из моделирования. В противном случае положение частиц и другие характеристики улучшаются на основе физического моделирования, которое может быть таким же простым, как переводих текущее положение, или такие сложные, как выполнение физически точных расчетов траектории с учетом внешних сил (гравитация, трение, ветер и т. д.). Обычно выполняется обнаружение столкновений между частицами и указанными трехмерными объектами в сцене, чтобы частицы отскакивали от препятствий в окружающей среде или иным образом взаимодействовали с ними. Столкновения между частицами используются редко, поскольку они требуют больших вычислительных ресурсов и визуально не актуальны для большинства симуляций.

Стадия рендеринга [ править ]

После завершения обновления каждая частица визуализируется, обычно в форме текстурированного четырехугольника с билбордами (т.е. четырехугольника, который всегда обращен к зрителю). Однако для игр в этом иногда нет необходимости; частица может быть визуализирована как один пиксель в средах с малым разрешением / ограниченной вычислительной мощностью. И наоборот, частицы в анимированной графике, как правило, представляют собой полные, но мелкомасштабные и простые для рендеринга 3D-модели, чтобы гарантировать точность даже при высоком разрешении. В автономном рендеринге частицы могут отображаться как металлические объекты ; изоповерхностивычисленные из частиц-метаболитов, делают жидкости весьма убедительными. Наконец, трехмерные сетчатые объекты могут «заменять» частицы - метель может состоять из одной трехмерной трехмерной снежинки, которая дублируется и вращается, чтобы соответствовать положениям тысяч или миллионов частиц.

«Снежинки» против «Волос» [ править ]

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

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

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

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

Инструменты системы частиц, удобные для разработчиков [ править ]

Код систем частиц, который может быть включен в игровые движки, системы создания цифрового контента и приложения эффектов, может быть написан с нуля или загружен. Havok предоставляет API для нескольких систем частиц. Их Havok FX API специализируется на эффектах системы частиц. Ageia - теперь дочерняя компания Nvidia - предоставляет систему частиц и другой API игровой физики, который используется во многих играх, включая игры Unreal Engine 3 . И GameMaker Studio, и Unity предоставляют двумерную систему частиц, часто используемую инди-разработчиками., разработчики игр для любителей или студентов, но не могут быть импортированы в другие движки. Также существует множество других решений, и системы частиц часто пишутся с нуля, если требуются нестандартные эффекты или поведение.

См. Также [ править ]

  • Моделирование N-тела
  • Метод частиц

Ссылки [ править ]

  1. ^ Ривз, Уильям (1983). «Системы частиц - метод моделирования класса нечетких объектов» (PDF) . Транзакции ACM на графике . 2 (2): 91–108. CiteSeerX  10.1.1.517.4835 . DOI : 10.1145 / 357318.357320 . Проверено 13 июня 2018 .

Внешние ссылки [ править ]

  • Брызги океана тебе в лицо. - Джефф Лендер (графический контент, июль 1998 г.)
  • Создание продвинутой системы частиц - Джон ван дер Бург ( Гамасутра , июнь 2000 г.)
  • Двигатель частиц с использованием треугольных полос - Джефф Молофи ( NeHe )
  • Разработка расширяемой системы частиц с использованием C ++ и шаблонов - Кент Лай (GameDev.net)
  • репозиторий публичных скриптов 3D-частиц в формате LSL Second Life - Ferd Frederix
  • GPU-Particlesystems с использованием WebGL - Эффекты частиц прямо в браузере с использованием WebGL для вычислений.