Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Описание [ править ]

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

Научные двигатели [ править ]

Один из первых компьютеров общего назначения, ENIAC , использовался как очень простой тип физического движка. Он использовался для разработки баллистических таблиц, чтобы помочь военным США оценить, где артиллерийские снаряды различной массы приземлялись бы при выстреле под разными углами и пороховыми зарядами, а также с учетом дрейфа, вызванного ветром. Результаты были рассчитаны только один раз и занесены в распечатанные таблицы, розданные командирам артиллерии.

Физические движки обычно используются на суперкомпьютерах с 1980-х годов для выполнения вычислительного моделирования гидродинамики , когда частицам присваиваются векторы сил , которые объединяются, чтобы показать циркуляцию. Из-за требований к скорости и высокой точности для ускорения вычислений были разработаны специальные компьютерные процессоры, известные как векторные процессоры . Эти методы могут использоваться для моделирования погодных условий при прогнозировании погоды , данных в аэродинамической трубе для проектирования воздушных и водных судов или транспортных средств, включая гоночные автомобили, и теплового охлаждения компьютерных процессоров для улучшения теплоотводов.. Как и во многих вычислительных процессах, точность моделирования связана с разрешением моделирования и точностью вычислений; небольшие колебания, не смоделированные при моделировании, могут резко изменить прогнозируемые результаты.

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

Игровые движки [ править ]

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

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

Обнаружение столкновений [ править ]

Объекты в играх взаимодействуют с игроком, окружающей средой и друг с другом. Как правило, большинство 3D-объектов в играх представлено двумя отдельными сетками или формами. Одна из этих сеток - очень сложная и детализированная форма, видимая игроку в игре, такая как ваза с элегантными изогнутыми и петляющими ручками. В целях скорости используется вторая упрощенная невидимая сетка для представления объекта физическому механизму, так что физический движок рассматривает примерную вазу как простой цилиндр. Таким образом, было бы невозможно вставить стержень или выстрелить снарядом через отверстия ручки в вазе, потому что модель физического двигателя основана на цилиндре и не знает ручек. Упрощенная сетка, используемая для обработки физики, часто называется геометрией столкновений. Это может быть ограничивающая рамка, сфера или выпуклая оболочка . Механизмы, использующие ограничивающие прямоугольники или ограничивающие сферы в качестве окончательной формы для обнаружения столкновений, считаются чрезвычайно простыми. Обычно ограничивающая рамка используется для обнаружения столкновений в широкой фазе, чтобы сузить количество возможных столкновений до того, как на узкой фазе обнаружения столкновений будет выполнена дорогостоящая сетка для обнаружения столкновений сетки.

Другой аспект точности дискретного обнаружения столкновений включает частоту кадров или количество моментов времени в секунду при вычислении физики. Каждый кадр обрабатывается отдельно от всех других кадров, и расстояние между кадрами не вычисляется. Низкая частота кадров и небольшой быстро движущийся объект вызывают ситуацию, когда объект не движется плавно в пространстве, а вместо этого кажется, что он телепортируется из одной точки пространства в другую при вычислении каждого кадра. Снаряды, движущиеся с достаточно высокой скоростью, не попадут в цель, если цель достаточно мала, чтобы уместиться в промежутке между расчетными кадрами быстро движущегося снаряда. Для преодоления этого недостатка используются различные методы, например « Вторая жизнь ».s представление снарядов в виде стрелок с невидимыми хвостами, длина которых превышает промежуток в кадрах, для столкновения с любым объектом, который может уместиться между рассчитанными кадрами. Напротив, непрерывное обнаружение столкновений, такое как в Bullet или Havok , не страдает этой проблемой.

Динамика мягкого тела [ править ]

Альтернативой использованию систем физики твердого тела на основе ограничивающей рамки является использование системы на основе конечных элементов . В такой системе трехмерная объемная мозаика создается из трехмерного объекта. В результате мозаики образуется ряд конечных элементов, которые представляют такие аспекты физических свойств объекта, как прочность, пластичность и сохранение объема. После построения конечные элементы используются решателемдля моделирования напряжения в 3D-объекте. Напряжение можно использовать для управления изломом, деформацией и другими физическими эффектами с высокой степенью реалистичности и уникальности. По мере увеличения числа моделируемых элементов способность двигателя моделировать физическое поведение увеличивается. Визуальное представление 3D-объекта изменяется системой конечных элементов за счет использования шейдера деформации, запускаемого на CPU или GPU. Системы на основе конечных элементов были непрактичными для использования в играх из-за накладных расходов на производительность и отсутствия инструментов для создания представлений конечных элементов из трехмерных арт-объектов. Благодаря более высокопроизводительным процессорам и инструментам для быстрого создания объемных мозаик системы конечных элементов в реальном времени стали использоваться в играх, начиная с Star Wars: The Force Unleashed.который использовал цифровую молекулярную материю для деформации и разрушения древесины, стали, плоти и растений с использованием алгоритма, разработанного доктором Джеймсом О'Брайеном в рамках его докторской диссертации. [1]

Броуновское движение [ править ]

В реальном мире физика всегда активна. Все частицы в нашей Вселенной постоянно сталкиваются с броуновским движением, поскольку силы толкаются друг против друга. Для движка игровой физики такая постоянная активная точность излишне расходует ограниченную мощность ЦП, что может вызвать такие проблемы, как снижение частоты кадров . Таким образом, игры могут помещать объекты в «сон», отключая вычисление физики для объектов, которые не переместились на определенное расстояние в течение определенного периода времени. Например, в виртуальном 3D мире Second Life, если объект лежит на полу и не перемещается дальше минимального расстояния примерно за две секунды, то физические вычисления для объекта отключаются, и он застывает на месте. Объект остается замороженным до тех пор, пока физическая обработка объекта не активируется после столкновения с каким-либо другим активным физическим объектом. [2]

Парадигмы [ править ]

Физические движки для видеоигр обычно имеют два основных компонента: систему обнаружения столкновений / реагирования на столкновения и компонент динамического моделирования, отвечающий за решение сил, действующих на моделируемые объекты. Современные физические движки могут также содержать симуляции жидкости , системы управления анимацией и инструменты интеграции ресурсов . Существует три основных парадигмы физического моделирования твердых тел: [3]

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

Наконец, возможны гибридные методы, сочетающие аспекты вышеуказанных парадигм.

Ограничения [ править ]

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

Блок обработки физики (PPU) [ править ]

Блок обработки физики (PPU) - это специальный микропроцессор, предназначенный для обработки вычислений физики, особенно в физическом движке видеоигр . Примеры расчетов с участием ППЫ могут включать динамику твердого тела , динамику мягких тел , обнаружение столкновений , динамику жидкости , волосы и одежду моделирование, анализ метод конечных элементов , и разломы объектов. Идея состоит в том, что специализированные процессоры выгружают трудоемкие задачи с центрального процессора компьютера, подобно тому, как графический процессор выполняет графические операции вместо основного процессора. Термин был придуман Агейеймаркетинг, чтобы описать их чип PhysX потребителям. Некоторые другие технологии в спектре CPU-GPU имеют некоторые общие черты, хотя решение Ageia было единственным законченным, разработанным, проданным, поддерживаемым и размещенным в системе исключительно как PPU.

Универсальные вычисления на графическом процессоре (GPGPU) [ править ]

Аппаратное ускорение для обработки физики теперь обычно обеспечивается блоками обработки графики, которые поддерживают более общие вычисления, концепция, известная как вычисления общего назначения на блоках обработки графики (GPGPU). AMD и NVIDIA обеспечивают поддержку вычислений динамики твердого тела на своих последних видеокартах.

Серия NVIDIA GeForce 8 поддерживает технологию ускорения ньютоновской физики на базе графического процессора под названием Quantum Effects Technology . NVIDIA предоставляет SDK Toolkit для технологии CUDA ( Compute Unified Device Architecture ), которая предлагает как низкоуровневый, так и высокоуровневый API для графического процессора. [4] Для своих графических процессоров AMD предлагает аналогичный SDK под названием Close to Metal (CTM), который обеспечивает тонкий аппаратный интерфейс.

PhysX - это пример физического движка, который может использовать аппаратное ускорение на основе GPGPU, когда оно доступно.

Двигатели [ править ]

Физические движки в реальном времени [ править ]

Физические движки высокой точности [ править ]

  • VisSim - движок визуального моделирования для линейной и нелинейной динамики
  • Рабочая модель от Design Simulation Technologies

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

  • Физика игры
  • Физика рэгдолла
  • Процедурная анимация
  • Динамика жесткого тела
  • Динамика мягкого тела
  • Блок обработки физики
  • Микропроцессор клетки
  • Проблема линейной дополнительности Механизмам физики импульсов / ограничений требуется решатель таких задач для обработки многоточечных столкновений.
  • Конечно-элементный анализ

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

  1. ^ «Графическое моделирование и анимация хрупкого разрушения» . Graphics.eecs.berkeley.edu . Проверено 1 сентября 2012 .
  2. ^ "Документ: Руководство / Игровой движок / Логика / Тип объекта / Жесткое тело - BlenderWiki" . Wiki.blender.org. 2009-11-20 . Проверено 16 августа 2010 .
  3. ^ Эрлебен, Кенни; Спорринг, Джон; Хенриксен, Кнуд; Дольманн, Хенрик (2005). Физическая анимация .
  4. ^ "Страница характеристик NVIDIA 8800 - Технология квантовых эффектов" . Nvidia.com . Проверено 16 августа 2010 .

Дальнейшее чтение [ править ]

  • Бур, Дэвид М. (2002) Физика для разработчиков игр . O'Reilly & Associates.

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

  • «Список физических двигателей» . База данных . Цифровая руна. 30 марта 2015 г. [2010]. Архивировано из оригинала на 9 мар 2016.