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

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

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

Описание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Парадигмы

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

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

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

Ограничения

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

Блок обработки физики (PPU)

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

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

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

NVIDIA GeForce 8 серии поддерживает технологию ускорения физики Ньютона на основе графического процессора под названием Технология квантовых эффектов. NVIDIA предоставляет SDK Toolkit для CUDA (Унифицированная архитектура вычислительных устройств ), которая предлагает как низкоуровневый, так и высокоуровневый API для графического процессора.[4] Для своих графических процессоров AMD предлагает аналогичный SDK под названием Близко к металлу (CTM), обеспечивающий тонкий аппаратный интерфейс.

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

Двигатели

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

Физические двигатели высокой точности

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

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

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

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

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

внешняя ссылка