Физическая анимация - Physically based animation

Физическая анимация это область интереса в компьютерная графика озабочен симуляция физически правдоподобного поведения в интерактивном режиме. Достижения в области анимации, основанной на физике, часто мотивируются необходимостью включения сложных, вдохновляемых физическими упражнениями моделей поведения в видеоигры, интерактивные симуляции, и фильмы. Хотя существуют методы автономного моделирования для решения большинства проблем, изучаемых в физической анимации, эти методы предназначены для приложений, требующих физической точности и медленных, детальных вычислений. В отличие от методов, распространенных в автономном моделировании, методы физически обоснованной анимации связаны с физической правдоподобностью, числовая стабильность, и визуальная привлекательность превыше физической точности. Физическая анимация часто ограничивается приближением к физическому поведению из-за жестких временных ограничений, накладываемых интерактивными приложениями. Цель частота кадров для интерактивных приложений, таких как игры и симуляторы, часто 25-60 герц, при этом для физического моделирования остается лишь небольшая часть времени, отведенного на отдельный кадр. Обычно предпочтительнее упрощенные модели физического поведения, если они более эффективны, их легче ускорить (с помощью предварительных вычислений, продуманных структур данных или SIMD /ГПГПУ ) или удовлетворять желаемым математическим свойствам (таким как безусловная устойчивость или сохранение объема, когда мягкое тело подвергается деформации). Мелкие детали не важны, когда главной целью визуализации является эстетическая привлекательность или поддержание погружения игрока, поскольку эти детали часто трудно заметить людям или их невозможно различить в человеческом масштабе.[1]

История

Физическая анимация теперь распространена в фильмах и видеоиграх, и многие методы были впервые применены при разработке ранних сцен со спецэффектами и игровых движков. Звездный путь II: Гнев Хана Известно использование систем частиц в сцене взрыва Genesis, чтобы создать визуальный эффект пылающей ударной волны, охватывающей планету.[2] Несмотря на то, что был выпущен раньше физические двигатели были обычным явлением в играх, Системный шок включил в свой движок физику твердого тела и был широко признан новаторским благодаря этой функции и новому чувству взаимодействия, которое она предоставляла игрокам. Клапан позже разработан Период полураспада и использовал физику твердого тела для создания головоломок окружения для игрока, таких как препятствия, которые невозможно было преодолеть, не сложив ящики. Half Life 2 представлял собой более продвинутый физический движок, который включал ограниченные системы, такие как шкивы или рычаги, с большим количеством загадок окружающей среды, чтобы продемонстрировать эти особенности. Физические движки теперь гораздо более распространены в играх, и их частое появление мотивировало исследования в области физической анимации такими компаниями, как Nvidia.

Физическая анимация в играх и симуляторах

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

Физическая анимация в фильмах

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

Под-темы

Моделирование жесткого тела

Упрощенная физика твердого тела относительно дешева и проста в реализации, поэтому она появилась в интерактивных играх и симуляторах раньше, чем большинство других методов. Предполагается, что твердые тела не деформируются во время моделирования, поэтому движение твердого тела между временными шагами можно описать как поступательное движение и вращение, традиционно с использованием аффинного трансформации хранятся в виде матриц 4x4. В качестве альтернативы, кватернионы могут использоваться для хранения поворотов, а векторы могут использоваться для хранения смещения объектов от начала координат. Наиболее затратными в вычислительном отношении аспектами динамики твердого тела являются: обнаружение столкновения, исправляя взаимопроникновение между телами и окружающей средой, и справляясь с контактом в состоянии покоя. Жесткие тела обычно моделируются итеративно с обратным отслеживанием для исправления ошибки с использованием меньших временных шагов. Постоянный контакт между несколькими твердыми телами (как в случае, когда твердые тела падают в груды или штабелируются) может быть особенно трудным для эффективного управления и может потребовать сложных графиков контакта и распространения ударной волны, чтобы разрешить с помощью импульсных методов. При моделировании большого количества твердых тел упрощенная геометрия или выпуклые оболочки часто используются для представления их границ с целью обнаружения столкновений и реагирования (поскольку это обычно является узким местом при моделировании).

Моделирование мягкого тела

Мягкие тела можно легко реализовать с помощью систем с пружинной сеткой. Системы пружинной сетки состоят из индивидуально смоделированных частиц, которые притягиваются друг к другу смоделированными силами пружины и испытывают сопротивление смоделированных демпферов. Произвольную геометрию легче смоделировать, применяя силы пружины и демпфера к узлам решетки и деформируя объект вместе с решеткой. Однако явные решения для этих систем не очень стабильны в числовом отношении и чрезвычайно трудно контролировать поведение параметров сквозной пружины. Методы, которые позволяют создавать физически правдоподобные и визуально привлекательные мягкие тела, являются численно стабильными и могут быть хорошо настроены художниками, были непомерно дорогими в ранней истории игр, поэтому мягкие тела не были так распространены, как твердые тела. Интеграция с использованием Рунге-Кутта методы могут использоваться для увеличения численной стабильности нестабильных методов, таких как пружинные сетки или более мелкие временные шаги, могут использоваться для моделирования (хотя это более затратно и не может сделать пружинные сетки устойчивыми для сколь угодно больших сил). Такие методы, как сопоставление форм и динамика на основе положения, решают эти проблемы с учетом интерактивных игр и моделирования. Динамика на основе позиции используется в основных игровых движках, таких как Bullet (программное обеспечение), Havok, и PhysX.[3][4] Безусловная стабильность и простота конфигурации - особенно желательные свойства моделирования мягких тел, которых может быть трудно достичь с помощью систем с пружинной сеткой, хотя они все еще часто используются в играх из-за своей простоты и скорости.

Моделирование жидкости

Вычислительная гидродинамика может быть дорогостоящей, а взаимодействие между несколькими жидкими телами или с внешними объектами / силами может потребовать сложной логики для оценки. Моделирование жидкости обычно достигается в видеоиграх путем моделирования только высоты водоемов для создания эффекта волн, ряби или других поверхностных элементов. Для относительно свободных тел жидкости, лагранжевые или полулагранжевые методы часто используются для ускорения моделирования, рассматривая частицы как конечные элементы жидкости (или носители физических свойств) и аппроксимируя Уравнения Навье-Стокса.[5][6] В играх не принято моделировать тела жидкости, хотя элементы поверхности можно моделировать с помощью аналогичных методов, а моделирование жидкости можно использовать для создания текстур или полей высоты для визуализации воды в реальном времени без моделирование в реальном времени (обычно это делается для больших водоемов в играх). Моделирование жидкостей может быть выполнено с использованием стандартного графического оборудования через ГПГПУ, и поля высоты могут быть эффективно вычислены, что приводит к волнообразному поведению, используя Решеточные методы Больцмана.[7] В качестве альтернативы, поверхностные элементы и волны могут быть смоделированы как частицы и поле высоты, созданное из смоделированных частиц в режиме реального времени. Это также обеспечивает эффективное двустороннее взаимодействие между жидкостью и плавающими объектами.[8]

Системы частиц

Системы частиц - чрезвычайно популярная техника для создания визуальных эффектов в фильмах и играх из-за простоты реализации, эффективности, расширяемости и контроля художника. Цикл обновления систем частиц обычно состоит из трех фаз: генерации, моделирования и исчезновения. Эти фазы соответственно состоят из введения новых частиц, их имитации на следующем временном шаге и удаления частиц, срок жизни которых превысил срок их службы. Физические и визуальные атрибуты частиц обычно рандомизируются при генерации с диапазоном и распределением атрибутов, контролируемых художником. В дальнейшем системы частиц могут быть созданы для создания самих систем частиц для создания более сложных и динамических эффектов, а их высокоуровневое поведение можно настроить с помощью структуры операторов, как в канонической статье Sims.[9]Ранние игры, которые отображали системы частиц, страдали от артефактов отсечения, когда частицы частично пересекали геометрию в окружающей среде, и этот артефакт был особенно заметен для больших частиц (которые часто использовались для замены дыма). Мягкие частицы устранять эти артефакты посредством тщательного затенения и управления прозрачностью частиц, чтобы частицы становились более прозрачными по мере приближения к поверхностям.

Флокирование

В физической анимации стайками называется техника, моделирующая сложное поведение птиц, косяков рыб и стаи насекомых с использованием виртуальных сил. Эти виртуальные силы имитируют стремление стаи центрировать свои скорости, избегать столкновений и скопления людей и двигаться к группе. В этих симуляциях отдельные члены стаи (иногда называемые boids, сокращенно от Bird-oid) действуют без сотрудничества, используя только информацию о положении и скорости своих сверстников, чтобы эффективно создать иллюзию синхронизированного группового поведения.[10] Флокирование также можно использовать для эффективного приближения поведения толпы людей, а методы, основанные на объединении, часто используются для толп людей. NPC в играх. Нереально и Период полураспада были одними из первых игр, в которых реализована стая, которая использовалась для моделирования поведения птиц и летающих существ, присутствующих на открытых уровнях.

Физическая анимация персонажей

Персонажи в играх и симуляторах традиционно анимируются с помощью таких методов, как ключевые кадры которые определяют анимацию посредством композиций более мелких статических движений, упорядоченных для передачи более сложного поведения. Визуально эти статические методы не могут легко передать сложные взаимодействия с окружающей средой и затруднить реалистичное движение персонажа. Техники в физическом анимация персонажей создавать динамические анимации, которые реагируют на взаимодействие с пользователем, внешние события и окружающую среду, оптимизируя движения для достижения определенных целей с учетом физических ограничений, таких как минимизация энергии.[11] Внедрение физически основанной анимации персонажей в отличие от более статических методов в игровой индустрии происходит медленно из-за увеличения стоимости и сложности, связанных с ее использованием. Анимация персонажей на физическом уровне использовалась в Скейт (видеоигра) серия видеоигр, а также в самостоятельно разработанном шутере от первого лица StarForge.

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

  1. ^ Бараф; Виткин (1999). «Заметки по курсу физического моделирования». Сигграф. Курс 36.
  2. ^ Ривз, В. «Системы частиц - методика моделирования класса нечетких объектов». Транзакции ACM на графике.
  3. ^ Мюллер, М .; Б. Хайдельбергер; М. Хенникс; Дж. Рэтклифф (2006). «Динамика на основе позиции» (PDF). Труды по взаимодействию виртуальной реальности и физического моделирования (VRIPhys).
  4. ^ Мюллер, М .; Б. Хайдельбергер; М. Тешнер; М. Гросс (2005). «Бессеточные деформации на основе подбора формы». Труды SIGGRAPH. 24 (3): 471. Дои:10.1145/1073204.1073216.
  5. ^ Взращивать; Метаксас (1996). «Реалистичная анимация жидкостей» (PDF). Графические модели и обработка изображений. 58 (5): 471–483. Дои:10.1006 / gmip.1996.0039.
  6. ^ Стам, Дж. (1999). «Стабильные жидкости» (PDF). Сигграф.
  7. ^ Гейст, Роберт; Кристофер Корси; Джерри Тессендорф; Джеймс Уэстолл (2010). "Волны решетчато-Больцмановской воды" (PDF). ISVC.
  8. ^ Юксель, Джем; Дональд Хаус; Джон Кейзер (2007). «Волновые частицы» (PDF). Сигграф. 26 (3): 99. Дои:10.1145/1276377.1276501.
  9. ^ Симс, Карл (август 1990). «Анимация и рендеринг частиц с использованием параллельных вычислений данных» (PDF). Компьютерная графика. 4. 24 (4): 405–413. Дои:10.1145/97880.97923.
  10. ^ Рейнольдс, К. (1989). «Стаи, стада и школы: распределенная модель поведения». Сигграф.
  11. ^ Geijtenbeek, T .; Н. Проность; А. Яйца; и М. Овермарс (2011). «Интерактивная анимация персонажей с использованием имитации физики» (PDF). Еврография.