stringtranslate.com

Физически обоснованная анимация

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

История

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

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

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

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

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

Подтемы

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

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

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

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

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

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

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

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

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

В физической анимации стайка относится к технике, которая моделирует сложное поведение птиц, косяков рыб и стай насекомых с использованием виртуальных сил. Эти виртуальные силы имитируют тенденцию стад концентрировать свою скорость, избегать столкновений и скопления людей и двигаться к группе. В этих симуляциях отдельные члены стаи (иногда называемые боидами, сокращенно от «птицеид») действуют без сотрудничества, используя только информацию о положении и скорости своих собратьев, чтобы эффективно создать иллюзию синхронизированного группового поведения. [10] Флокирование также можно использовать для эффективного моделирования поведения толпы людей, а методы, основанные на флокировании, часто используются для толп NPC в играх. Unreal и Half-Life были одними из первых игр, в которых реализовано стекание, которое использовалось для моделирования поведения птиц и летающих существ, присутствующих на открытых уровнях.

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

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

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

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