Физический движок
Эта статья нуждается в дополнительных цитатах для проверки . ( август 2010 г. ) |
Продолжительность: 16 секунд. |
Физический движок — это компьютерное программное обеспечение , которое обеспечивает приблизительное моделирование определенных физических систем , таких как динамика твердого тела (включая обнаружение столкновений ), динамика мягкого тела и динамика жидкости , используемые в областях компьютерной графики , видеоигр и фильмов ( CGI). ). Их основное использование — в видеоиграх (обычно в качестве промежуточного программного обеспечения ), и в этом случае симуляция происходит в реальном времени . Этот термин иногда используется в более общем смысле для описания любой программной системы для моделирования физических явлений, например высокопроизводительного научного моделирования .
Описание
[ редактировать ]Обычно существует два класса физических движков : реального времени и высокоточные. Высокоточные физические механизмы требуют большей вычислительной мощности для очень точных физических расчетов и обычно используются учеными и компьютерными анимационными фильмами. Физические механизмы реального времени, используемые в видеоиграх и других формах интерактивных вычислений, используют упрощенные вычисления и пониженную точность для своевременного выполнения вычислений, чтобы игра реагировала с соответствующей скоростью для игрового процесса. Физический движок — это, по сути, большой калькулятор, выполняющий математические вычисления, необходимые для моделирования физики. [1]
Научные двигатели
[ редактировать ]Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( август 2010 г. ) |
Один из первых компьютеров общего назначения, 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, когда оно доступно.
Двигатели
[ редактировать ]Физические движки реального времени
[ редактировать ]
|
|
Высокоточные физические двигатели
[ редактировать ]- VisSim — механизм визуального моделирования линейной и нелинейной динамики.
См. также
[ редактировать ]- Физика игры
- Рэгдолл физика
- Процедурная анимация
- Динамика жесткого тела
- Мягкая динамика тела
- Физический процессор
- клеточный микропроцессор
- Проблема линейной дополнительности. Физические механизмы импульсов/ограничений требуют решателя таких задач для обработки многоточечных столкновений.
- Конечно-элементный анализ
Ссылки
[ редактировать ]- ^ Миллингтон, Ян (7 марта 2007 г.). Разработка игрового физического движка . ЦРК Пресс. ISBN 978-1-4822-6732-7 .
- ^ «Графическое моделирование и анимация хрупкого разрушения» . Graphics.eecs.berkeley.edu . Проверено 1 сентября 2012 г.
- ^ «Док:Руководство/Игровой движок/Логика/Тип объекта/Жесткое тело — BlenderWiki» . Wiki.blender.org. 20 ноября 2009 г. Архивировано из оригинала 1 октября 2011 г. Проверено 16 августа 2010 г.
- ^ Эрлебен, Кенни; Спорринг, Джон; Хенриксен, Кнуд; Долманн, Хенрик (2005). Физическая анимация .
- ^ «Страница функций NVIDIA 8800 — Технология квантовых эффектов» . Nvidia.com . Проверено 16 августа 2010 г.
- ^ Репозиторий Jolt Physics на GitHub
Дальнейшее чтение
[ редактировать ]- Бург, Дэвид М. (2002) Физика для разработчиков игр . О'Рейли и партнеры.
Внешние ссылки
[ редактировать ]- «Список физических двигателей» . База данных . Цифровая руна. 30 марта 2015 г. [2010]. Архивировано из оригинала 9 марта 2016 года.