Физический движок

редактировать
Программное обеспечение для приблизительного моделирования физических систем
Физический движок
Файл: PhysicsEngine.ogv Воспроизвести медиа Это четыре примера физики двигатель, имитирующий падение объекта на склон. Примеры различаются по точности моделирования:
  1. Без физики
  2. Гравитация, без обнаружения столкновений
  3. Гравитация и обнаружение столкновений, без динамики твердого тела
  4. Гравитация, обнаружение столкновений и расчеты вращения

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

Содержание
  • 1 Описание
    • 1.1 Научные механизмы
    • 1.2 Игровые движки
      • 1.2.1 Обнаружение столкновений
      • 1.2.2 Динамика мягкого тела
      • 1.2.3 Броуновское движение
      • 1.2.4 Парадигмы
  • 2 Ограничения
  • 3 Физический процессор ( PPU)
  • 4 Универсальная обработка на графическом процессоре (GPGPU)
  • 5 Механизмы
    • 5.1 Физические механизмы в реальном времени
    • 5.2 Высокоточные физические механизмы
  • 6 См. Также
  • 7 Дополнительная литература
  • 8 Ссылки
  • 9 Внешние ссылки
Описание

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

Научные движки

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

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

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

Игровые движки

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

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

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

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

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

Динамика мягкого тела

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

Броуновское движение

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

Парадигмы

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

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

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

Ограничения

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

Physics Processing Unit (PPU)

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

Обработка общего назначения на блоке обработки графики (GPGPU)

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

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

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

Engine

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

Открытый исходный код
Общественное достояние
  • Phyz (Dax Phyz) - 2.5D физический симулятор / редактор.
Закрытый исходный код / ​​ограниченное бесплатное распространение

Высокоточные физические движки

  • VisSim - движок визуального моделирования для линейной и нелинейной динамики
  • Рабочая модель от Design Simulation Technologies
См. Также
Дополнительная литература
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-02 04:40:00
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте