Система частиц
Эта статья включает список литературы , связанную литературу или внешние ссылки , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( январь 2018 г. ) |
Система частиц — это метод в игровой физике , анимационной графике и компьютерной графике , который использует множество мельчайших спрайтов , 3D-моделей или других графических объектов для имитации определенных видов «нечетких» явлений, которые в противном случае очень трудно воспроизвести с помощью обычных методов рендеринга. – обычно крайне хаотичные системы, природные явления или процессы, вызванные химическими реакциями.
Представлен в фильме 1982 года «Звездный путь 2: Гнев Хана» в связи с вымышленным «эффектом Бытия». [1] другие примеры включают воспроизведение явлений огня , взрывов , дыма , движущейся воды (например, водопада), искр , падающих листьев, камнепадов, , облаков , тумана снега , пыли , хвостов метеоров , звезд и галактик или абстрактных визуальных эффектов, таких как светящиеся следы, магические заклинания и т. д. — в них используются частицы, которые быстро исчезают, а затем повторно испускаются из источника эффекта. Другой метод можно использовать для вещей, содержащих множество нитей , таких как мех, волосы и трава, предполагая одновременное отображение всего времени жизни частицы, которое затем можно рисовать и манипулировать как единую нить рассматриваемого материала.
Системы частиц определяются как группа точек в пространстве, управляемая набором правил, определяющих поведение и внешний вид. Системы частиц моделируют явления как облако частиц, используя стохастические процессы для упрощения определения динамической системы и механики жидкости , которые трудно представить с помощью аффинных преобразований . [2]
Типичная реализация
[ редактировать ]Системы частиц обычно реализуют следующие модули:
- Стадия эмиссии , которая определяет местоположение и генерирует новые частицы.
- Этап моделирования , на котором обновляются параметры и моделируется эволюция частиц.
- Этап рендеринга , определяющий способ рендеринга частицы.
Стадия эмиссии
[ редактировать ]Эмиттер реализует скорость появления (сколько частиц генерируется в единицу времени), вектор начальной скорости частиц (направление, в котором они испускаются при создании). При использовании объекта-сетки в качестве излучателя вектор начальной скорости часто устанавливается нормальным к отдельной грани (граням) объекта, в результате чего создается впечатление, что частицы «разбрызгиваются» непосредственно с каждой грани, но это необязательно.
Этап моделирования
[ редактировать ]На этапе моделирования количество новых частиц, которые необходимо создать, рассчитывается на основе скорости появления и интервала между обновлениями, и каждая из них создается в определенной позиции в трехмерном пространстве в зависимости от положения излучателя и указанной области появления. Каждый из параметров частицы (т.е. скорость, цвет и т.д.) инициализируется в соответствии с параметрами эмиттера. При каждом обновлении все существующие частицы проверяются на предмет того, не превысили ли они срок своего существования, и в этом случае они удаляются из моделирования. В противном случае положение частиц и другие характеристики уточняются на основе физического моделирования, которое может быть настолько простым, как преобразование их текущего положения, или настолько сложным, как выполнение физически точных расчетов траектории, которые принимают во внимание внешние силы (гравитация, трение, ветер, и т. д.). Обычно выполняется обнаружение столкновений между частицами и указанными трехмерными объектами в сцене, чтобы частицы отскакивали от препятствий в окружающей среде или иным образом взаимодействовали с ними. Столкновения между частицами используются редко, поскольку они требуют больших вычислительных затрат и не имеют визуального значения для большинства симуляций.
Этап рендеринга
[ редактировать ]После завершения обновления каждая частица визуализируется, обычно в виде текстурированного с рекламным щитом четырехугольника (т. е. четырехугольника, который всегда обращен к зрителю). Однако для игр иногда в этом нет необходимости; частица может быть визуализирована как один пиксель в средах с малым разрешением и ограниченной вычислительной мощностью. И наоборот, частицы в анимированной графике, как правило, представляют собой полноценные, но мелкомасштабные и простые в рендеринге 3D-модели, чтобы обеспечить точность даже при высоком разрешении. Частицы можно визуализировать как метаболы при автономном рендеринге; изоповерхности, рассчитанные на основе меташаров частиц, образуют вполне убедительные жидкости. Наконец, объекты 3D-сетки могут «заменять» частицы — метель может состоять из одной трехмерной сетки-снежинки, которая дублируется и вращается, чтобы соответствовать положениям тысяч или миллионов частиц. [3]
Таксономия системы частиц
[ редактировать ]В 1983 году Ривз определил только анимированные точки, создав симуляцию движущихся частиц — искр, дождя, огня и т. д. В этих реализациях каждый кадр анимации содержит каждую частицу в определенной позиции в ее жизненном цикле, и каждая частица занимает одну точку. положение в пространстве. Для рассеивающихся эффектов, таких как огонь или дым, каждой частице дается время затухания или фиксированное время жизни; вместо этого такие эффекты, как снежные бури или дождь, обычно прекращают жизнь частицы, как только она выходит из определенного поля зрения . [1]
В 1985 году Ривз расширил концепцию, включив в нее одновременную визуализацию всего жизненного цикла каждой частицы. В результате частицы превращаются в статические нити материала, которые показывают общую траекторию, а не точки. Эти пряди можно использовать для имитации волос, меха, травы и подобных материалов. Нитью можно управлять с помощью тех же векторов скорости, силовых полей, скорости появления и параметров отклонения, которым подчиняются анимированные частицы. Кроме того, визуализированную толщину прядей можно контролировать, а в некоторых реализациях можно изменять по длине прядей. Различные комбинации параметров могут придавать жесткость, мягкость, тяжесть, щетинистость или любое количество других свойств. Нити также могут использовать наложение текстуры для изменения цвета, длины или других свойств нитей по поверхности эмиттера. [4]
В 1987 году Рейнольдс вводит понятия стадного , стадного или школьного поведения. Модель boids расширяет моделирование частиц, включив в него взаимодействия с внешними состояниями, включая поиск цели, предотвращение столкновений, центрирование скоплений и ограниченное восприятие. [5]
В 2003 году Мюллер расширил системы частиц до струйной техники, моделируя вязкость , давление и поверхностное натяжение , а затем визуализировал поверхности путем интерполяции дискретных положений с помощью гидродинамики сглаженных частиц . [6]
Удобные для разработчиков инструменты системы частиц
[ редактировать ]Код систем частиц, который можно включить в игровые движки, системы создания цифрового контента и приложения эффектов, можно написать с нуля или загрузить. Havok предоставляет несколько API-интерфейсов системы частиц. Их API Havok FX уделяет особое внимание эффектам системы частиц. Ageia — теперь дочерняя компания Nvidia — предоставляет систему частиц и другой API игровой физики, который используется во многих играх, включая на Unreal Engine 3 игры . И GameMaker Studio , и Unity предоставляют двумерную систему частиц, часто используемую инди -разработчиками, любителями или студентами игр, хотя ее нельзя импортировать в другие движки. Также существует множество других решений, и системы частиц часто пишутся с нуля, если желательны нестандартные эффекты или поведение.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Ривз, Уильям (1983). «Системы частиц — метод моделирования класса нечетких объектов» (PDF) . Транзакции ACM с графикой . 2 (2): 91–108. CiteSeerX 10.1.1.517.4835 . дои : 10.1145/357318.357320 . S2CID 181508 . Проверено 13 июня 2018 г.
- ^ Гастингс Э.Дж., Гуха Р.К., Стэнли КО (9 декабря 2008 г.). «Интерактивная эволюция систем частиц для компьютерной графики и анимации». Транзакции IEEE в эволюционных вычислениях . 13 (2): 418–32. CiteSeerX 10.1.1.365.5720 . дои : 10.1109/TEVC.2008.2004261 . S2CID 11390585 .
- ^ Симс К. (1 сентября 1990 г.). «Анимация частиц и рендеринг с использованием параллельных вычислений» (PDF) . Материалы 17-й ежегодной конференции «Компьютерная графика и интерактивные технологии» . стр. 405–413. дои : 10.1145/97879.97923 . ISBN 0897913442 . S2CID 2791741 . Проверено 17 января 2022 г.
- ^ Ривз, Уильям Т.; Блау, Рики (июль 1985 г.). «Приближенные и вероятностные алгоритмы затенения и рендеринга систем структурированных частиц». ACM SIGGRAPH Компьютерная графика . 19 (3): 313–322. дои : 10.1145/325165.325250 .
- ^ Рейнольдс, Крейг (1987). «Стада, стада и школы: распределенная поведенческая модель». Материалы 14-й ежегодной конференции «Компьютерная графика и интерактивные технологии» . Ассоциация вычислительной техники . стр. 25–34. CiteSeerX 10.1.1.103.7187 . дои : 10.1145/37401.37406 . ISBN 978-0-89791-227-3 . S2CID 546350 .
{{cite book}}
: CS1 maint: дата и год ( ссылка ) - ^ Мюллер М., Чарипар Д., Гросс М. «Моделирование жидкости на основе частиц для интерактивных приложений» (PDF) . Симпозиум SIGGRAPH по компьютерной анимации . Проверено 18 января 2022 г.
Внешние ссылки
[ редактировать ]- Океанские брызги тебе в лицо. - Джефф Лендер (Графический контент, июль 1998 г.)
- Создание усовершенствованной системы частиц — Джон ван дер Бург ( Gamasutra , июнь 2000 г.)
- Двигатель частиц с использованием треугольных полос — Джефф Молофи ( NeHe )
- Проектирование расширяемой системы частиц с использованием C++ и шаблонов — Кент Лай (GameDev.net)
- репозиторий общедоступных скриптов 3D-частиц в формате LSL Second Life — Ферд Фредерикс
- GPU-системы частиц с использованием WebGL — эффекты частиц прямо в браузере с использованием WebGL для вычислений.