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

редактировать

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

Содержание
  • 1 История
  • 2 Физическая анимация в играх и симуляторах
  • 3 Физическая анимация в фильмах
  • 4 Подразделы
    • 4.1 Моделирование твердого тела
    • 4.2 Моделирование мягкого тела
    • 4.3 Моделирование жидкости
    • 4.4 Системы частиц
    • 4.5 Флокирование
    • 4.6 Физическая анимация персонажей
  • 5 Ссылки
История

Физическая анимация теперь широко используется в фильмах и видеоиграх, и многие методы были впервые применены во время разработки ранних сцен со спецэффектами и игровых движков. Star Trek II: The Wrath of Khan в сцене взрыва Genesis широко использовались системы частиц, чтобы создать визуальный эффект пылающей ударной волны, охватывающей планету. Несмотря на то, что он был выпущен до того, как физические движки стали обычным явлением в играх, System Shock включила в свой движок физику твердого тела и широко считалась новаторской благодаря этой функции и новому чувству взаимодействия, которое она предоставляла. игроков. Valve позже разработала Half-Life и использовала физику твердого тела для создания головоломок окружения для игрока, таких как препятствия, которые невозможно было преодолеть, не сложив ящики. Half-Life 2 отличался более продвинутым физическим движком, который включал ограниченные системы, такие как шкивы или рычаги, с большим количеством загадок окружающей среды, чтобы продемонстрировать эти особенности. Физические движки теперь гораздо более распространены в играх, и их частое появление мотивировало исследования в области физической анимации такими компаниями, как Nvidia.

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

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

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

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

Подразделы

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

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

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

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

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

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

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

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

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

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

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

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

Ссылки
Последняя правка сделана 2021-06-02 04:39:01
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте