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


Динамика мягкого тела - это область компьютерной графики, которая фокусируется на визуально реалистичном физическом моделировании движения и свойств деформируемых объектов (или мягких тел ). [1] Приложения в основном используются в видеоиграх и фильмах. В отличие от моделирования твердых тел , форма мягких тел может изменяться, что означает, что относительное расстояние двух точек на объекте не фиксируется. Хотя относительные расстояния между точками не фиксированы, ожидается, что тело в некоторой степени сохранит свою форму (в отличие от жидкой). Возможности динамики мягкого тела довольно широки, включая моделирование мягких органических материалов, таких как мышцы, жир, волосы и растительность, а также других деформируемых материалов, таких как одежда и ткань. Как правило, эти методы обеспечивают только визуально правдоподобное моделирование, а не точное научное / инженерное моделирование, хотя есть некоторое пересечение с научными методами, особенно в случае моделирования методом конечных элементов. В настоящее время несколько физических движков предоставляют программное обеспечение для моделирования мягких тел. [2] [3] [4] [5] [6] [7]

Объекты мягкого тела реагируют на силы и могут сталкиваться с другими трехмерными объектами. Этот пример был создан с помощью Blender .

Моделирование объемных твердых мягких тел [8] может быть реализовано с использованием различных подходов.

Пружинные / массовые модели

Два узла как точки масс соединены параллельным контуром пружины и демпфера.

В этом подходе тело моделируется как набор точечных масс (узлов), соединенных идеальными невесомыми упругими пружинами, подчиняющимися некоторому варианту закона Гука . Узлы могут происходить либо из краев двумерного многоугольного сетчатого представления поверхности объекта, либо из трехмерной сети узлов и ребер, моделирующих внутреннюю структуру объекта (или даже из одномерной системы звеньев, если, например, моделируется веревка или прядь волос). Могут быть добавлены дополнительные пружины между узлами или изменен закон силы пружин для достижения желаемого эффекта. Применение второго закона Ньютона к точечным массам, включая силы, прилагаемые пружинами и любые внешние силы (из-за контакта, силы тяжести, сопротивления воздуха, ветра и т. Д.), Дает систему дифференциальных уравнений для движения узлов, которая решается стандартными численными схемами решения ОДУ . [9] Предоставление трехмерного масса-пружинная решетка часто делается с помощью свободной формы деформации , [10] , в котором оказывается сетка встроена в решетке и искажена , чтобы соответствовать форме решетки по мере ее развития. Считая все точечные массы равными нулю, можно получить метод растянутой сетки, направленный на решение нескольких инженерных задач, связанных с поведением упругой сетки. Иногда их называют моделями с пружинным демпфером . В мягких телах под давлением [11] модель пружины и массы сочетается с силой давления, основанной на законе идеального газа .

Конечно-элементное моделирование

Это более физически точный подход, который использует широко используемый метод конечных элементов для решения уравнений в частных производных, которые управляют динамикой упругого материала . Тело моделируется как трехмерный упругий континуум путем разбиения его на большое количество твердых элементов, которые подходят друг к другу, и решения для напряжений и деформаций в каждом элементе с использованием модели материала. [12] Элементы, как правило, тетраэдрические, узлы являются вершинами тетраэдров (существуют относительно простые методы [13] [14], чтобы тетраэдрически преобразовать трехмерную область, ограниченную многоугольной сеткой, в тетраэдры , аналогично тому, как двумерный многоугольник можно триангулировать в треугольники). Деформация (которая измеряет локальную деформацию точек материала от их состояния покоя) количественно выражается тензором деформации . Стресс (который измеряет местные силы на единицу площади во всех направлениях , действующих на материале) можно измерить с помощью тензора напряжений Коши . Учитывая текущую локальную деформацию, локальное напряжение можно вычислить с помощью обобщенной формы закона Гука : где представляет собой « тензор упругости », который кодирует свойства материала (параметризованный линейной упругостью для изотропного материала с помощью коэффициента Пуассона и модуля Юнга ).

Уравнение движения узлов элемента получается путем интегрирования поля напряжений по каждому элементу и соотнесения его посредством второго закона Ньютона с ускорениями узлов.

Pixelux (разработчики системы Digital Molecular Matter ) используют подход на основе конечных элементов для своих мягких тел, используя тетраэдрическую сетку и преобразуя тензор напряжений непосредственно в узловые силы. [15] Визуализация осуществляется посредством произвольной деформации . [10]

Методы минимизации энергии

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

Соответствие формы

В этой схеме к модели применяются штрафные силы или ограничения, чтобы привести ее к ее исходной форме [18] (т.е. материал ведет себя так, как если бы он имел память формы ). Чтобы сохранить импульс, необходимо правильно оценить вращение тела, например, с помощью полярного разложения . Чтобы аппроксимировать моделирование методом конечных элементов, согласование формы можно применить к трехмерным решеткам и объединить несколько ограничений согласования формы. [19]

Деформация на основе твердого тела

Деформация также может обрабатываться традиционным движком физики твердого тела , моделируя движение мягкого тела с помощью сети из нескольких твердых тел, связанных ограничениями, и используя (например) скиннинг матричной палитры для создания поверхностной сетки для рендеринга. Это подход, используемый для деформируемых объектов в Havok Destruction . [20]

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

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

Ткань на силовой основе

Модель массы-пружины (полученная из представления ткани с полигональной сеткой ) определяет внутренние силы пружины, действующие на узлы на каждом временном шаге (в сочетании с гравитацией и приложенными силами). Второй закон Ньютона дает уравнения движения, которые можно решить с помощью стандартных решателей ОДУ . Однако создать ткань высокого разрешения с реалистичной жесткостью невозможно с помощью простых явных решателей (таких как прямое интегрирование Эйлера ), если только временной шаг не сделан слишком маленьким для интерактивных приложений (поскольку, как хорошо известно, явные интеграторы численно нестабильны для достаточно жестких системы). Следовательно, должны использоваться неявные решатели [22], требующие решения большой системы разреженных матриц (например, с помощью метода сопряженных градиентов ), что само по себе также может быть затруднено при интерактивной частоте кадров. Альтернативой [23] [24] является использование явного метода с низкой жесткостью со специальными методами, чтобы избежать нестабильности и чрезмерного растяжения (например, поправки, ограничивающие деформацию).

Позиционная динамика

Чтобы избежать необходимости делать дорогостоящее неявное решение системы ODE , многие симуляторы ткани в реальном времени (особенно PhysX , Havok Cloth и Maya nCloth ) используют динамику на основе положения (PBD) [25] , подход, основанный на ослаблении ограничений. Модель масса-пружина преобразуется в систему ограничений, которая требует, чтобы расстояние между соединенными узлами было равно начальному расстоянию. Эта система решается последовательно и итеративно, путем прямого перемещения узлов для удовлетворения каждого ограничения, пока не будет получена достаточно жесткая ткань. Это похоже на решение Гаусса-Зейделя неявной матричной системы для модели масса-пружина. Однако необходимо соблюдать осторожность, чтобы решать ограничения в одной и той же последовательности на каждом временном шаге, чтобы избежать паразитных колебаний и убедиться, что ограничения не нарушают сохранение линейного и углового момента . Могут применяться дополнительные ограничения положения, например, для удержания узлов в желаемых областях пространства (например, достаточно близко к анимированной модели) или для поддержания общей формы тела посредством сопоставления форм.

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

Обнаружение столкновений может быть дискретным / апостериорным (то есть объекты продвигаются во времени через заранее определенный интервал, а затем обнаруживаются и разрешаются любые проникновения) или непрерывным / априорным (объекты продвигаются только до тех пор, пока не произойдет столкновение, и столкновение обработано перед продолжением). Первый вариант легче реализовать и он работает быстрее, но приводит к невозможности обнаружения столкновений (или обнаружения ложных столкновений), если объекты движутся достаточно быстро. Системы реального времени обычно должны использовать дискретное обнаружение столкновений с другими специальными способами, чтобы избежать сбоев в обнаружении столкновений.

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

Однако обнаружение столкновений между двумя многоугольными тканями (или столкновения ткани с самим собой) с помощью дискретного обнаружения столкновений намного сложнее, поскольку нет однозначного способа локально определить после временного шага, находится ли проникающий узел ткани на " изнанка или нет. Решения включают либо использование истории движения ткани, чтобы определить, произошло ли событие пересечения, либо выполнение глобального анализа состояния ткани для обнаружения и устранения самопересечений. Pixar представила метод, который использует глобальный топологический анализ пересечений сеток в конфигурационном пространстве для обнаружения и устранения взаимопроникновения ткани. [26] В настоящее время это, как правило, слишком дорого с точки зрения вычислений для тканевых систем реального времени.

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

  • Иерархии ограничивающих объемов ( деревья AABB , [27] деревья OBB, деревья сфер)
  • Сетки, либо унифицированные [28] (с использованием хеширования для повышения эффективности памяти), либо иерархические (например, Octree , kd-tree )
  • Схемы использования когерентности, такие как развертка и отсечение с сортировкой вставкой или коллизии дерево-дерево с передним отслеживанием.
  • Гибридные методы, включающие комбинацию различных из этих схем, например грубое дерево AABB плюс очистка и обрезка с согласованностью между сталкивающимися листьями.

Другими эффектами, которые можно моделировать с помощью методов динамики мягкого тела, являются:

  • Разрушаемые материалы: разрушение хрупких твердых тел, разрез [29] мягких тел и разрыв ткани. Метод конечных элементов особенно подходит для моделирования разрушения [15], поскольку он включает реалистичную модель распределения внутренних напряжений в материале, которая физически определяет момент разрушения согласно механике разрушения .
  • Пластичность [18] (остаточная деформация) и плавление [30]
  • Искусственные волосы, [31] мех и перья.
  • Моделируемые органы для биомедицинских приложений [32]

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

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

Игры

  • Деформируемое тело
  • Динамика жесткого тела
  • Моделирование ткани
  • Физика груди

  1. ^ Nealen, Мюллер, Кайзер, Boxerman и Карлсон (2005). «Физически деформируемые модели в компьютерной графике». CiteSeerX  10.1.1.124.4664 . Отсутствует или пусто |url=( справка )CS1 maint: несколько имен: список авторов ( ссылка )
  2. ^ "Numerion Software - Углеродная физика" .
  3. ^ «Мягкие тела PhysX» .
  4. ^ «Цифровая молекулярная материя Pixelux (DMM)» .
  5. ^ «Ткань Хавок» .
  6. ^ «Физика пули» .
  7. ^ «Ядро Майя» .
  8. ^ «Док: 2.4 / Руководство / Физика / Мягкие тела 2.46 - BlenderWiki» . wiki.blender.org . Проверено 19 сентября 2015 .
  9. ^ Десбрун, Шредер и Барр (1999). «Интерактивная анимация структурированных деформируемых объектов» (PDF) .
  10. ^ а б Седерберг и Парри (1986). "Деформация произвольной формы твердых геометрических моделей" (PDF) .
  11. ^ Матыка и Оллила (2003). «Модель давления для моделирования мягкого тела» (PDF) .
  12. ^ Кауфманн, Мартин, Botsch & Gross (2008). «Гибкое моделирование деформируемых моделей с использованием разрывных МКЭ Галеркина» (PDF) .CS1 maint: несколько имен: список авторов ( ссылка )
  13. ^ Спиллманн, Вагнер и Тешнер (2006). «Надежное тетраэдрическое соединение треугольных супов» (PDF) .
  14. ^ Бридсон, Теран, Молино и Федкив (2003). «Построение тетраэдральной сетки на основе адаптивной физики с использованием наборов уровней» (PDF) .CS1 maint: несколько имен: список авторов ( ссылка )
  15. ^ а б Паркер и О'Брайен (2009). «Деформация и разрушение в реальном времени в игровой среде» .
  16. ^ Терзопулос, Платт, Барр и Флейшер (1987). «Упругодеформируемые модели» (PDF) .CS1 maint: несколько имен: список авторов ( ссылка )
  17. ^ Вардецки, Бергоу, Хармон, Зорин и Гринспун (2007). "Дискретные квадратичные энергии кривизны" (PDF) .CS1 maint: несколько имен: список авторов ( ссылка )
  18. ^ а б Мюллер, Heidelberger, Teschner & Gross (2005). «Бессеточные деформации на основе согласования форм» (PDF) .CS1 maint: несколько имен: список авторов ( ссылка )
  19. ^ Steinemann, Otaduy & Gross (2008). «Быстро адаптивные деформации подгонки формы» .
  20. ^ «Разрушение Хавока» .
  21. ^ Калдор, Джеймс и Маршнер (2008). «Моделирование трикотажного полотна на уровне пряжи» (PDF) .
  22. ^ Барафф и Уиткин (1998). «Большие шаги в моделировании ткани» (PDF) .
  23. ^ Прово (1997). «Обработка столкновений и самоуничтожений в тканевой модели, предназначенной для дизайнерской одежды». CiteSeerX  10.1.1.89.9232 . Отсутствует или пусто |url=( справка )
  24. ^ Бридсон, Федкив и Андерсон (2002). «Надежная обработка столкновений, контактов и трения для анимации ткани» (PDF) .
  25. ^ Мюллер, Хайдельбергер, Хенникс и Ратклифф (2006). "Динамика позиции" (PDF) .CS1 maint: несколько имен: список авторов ( ссылка )
  26. ^ Барафф, Уиткин и Касс (2003). «Распутывающая ткань» (PDF) .
  27. ^ Ван ден Берген (1998). «Эффективное обнаружение столкновений сложных деформируемых моделей с использованием деревьев AABB» (PDF) .
  28. ^ Teschner, Heidelberger, Müller, Pomeranets & Gross (2003). «Оптимизированное пространственное хеширование для обнаружения столкновений деформируемых объектов» (PDF) .CS1 maint: несколько имен: список авторов ( ссылка )
  29. ^ Steinemann, Otaduy & Gross (2006). «Быстрое произвольное расщепление деформируемых объектов» (PDF) .
  30. ^ Мюллер, Кейзер, Неален, Поли, Гросс и Алекса (2004). «Точечная анимация упругих, пластических и плавящихся объектов» (PDF) .CS1 maint: несколько имен: список авторов ( ссылка )
  31. ^ Селле, Лентин и Федкив (2008). «Модель массовой пружины для моделирования волос» .
  32. ^ «Когда виртуальная хирургия станет популярной?» . Scientific American . 2007 г.

  • «Анимация природных явлений», курс CMU по физической анимации, включая деформируемые тела.
  • Видео пример динамики мягкого тела
  • Вступительная статья
  • Статья Томаса Якобсена, объясняющая основы метода PBD