stringtranslate.com

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

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

Описание

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

Научные двигатели

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

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

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

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

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

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

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

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

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

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

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

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

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

Парадигмы

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

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

Ограничения

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

Физический процессор (ППУ)

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

Вычисления общего назначения на графическом процессоре (GPGPU)

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

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

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

Двигатели

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

Высокоточные физические двигатели

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

Рекомендации

  1. ^ Миллингтон, Ян (07 марта 2007 г.). Разработка игрового физического движка. ЦРК Пресс. ISBN 978-1-4822-6732-7.
  2. ^ «Графическое моделирование и анимация хрупкого разрушения». Graphics.eecs.berkeley.edu . Проверено 1 сентября 2012 г.
  3. ^ «Док: Руководство/Игровой движок/Логика/Тип объекта/Жесткое тело — BlenderWiki». Wiki.blender.org. 20 ноября 2009 г. Архивировано из оригинала 1 октября 2011 г. Проверено 16 августа 2010 г.
  4. ^ Эрлебен, Кенни; Спорринг, Джон; Хенриксен, Кнуд; Долманн, Хенрик (2005). Физическая анимация .
  5. ^ «Страница функций NVIDIA 8800 — Технология квантовых эффектов» . Nvidia.com . Проверено 16 августа 2010 г.
  6. ^ Репозиторий Jolt Physics на GitHub

дальнейшее чтение

Внешние ссылки