Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Динамика мягкого тела - это область компьютерной графики, которая фокусируется на визуально реалистичном физическом моделировании движения и свойств деформируемых объектов (или мягких тел ). [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: multiple names: authors list (link)
  2. ^ "Numerion Software - Углеродная физика" .
  3. ^ "Мягкие тела PhysX" .
  4. ^ "Цифровая молекулярная материя Pixelux (DMM)" .
  5. ^ "Ткань Havok" .
  6. ^ "Физика пули" .
  7. ^ «Ядро Майя» .
  8. ^ "Док: 2.4 / Руководство / Физика / Мягкие тела 2.46 - BlenderWiki" . wiki.blender.org . Проверено 19 сентября 2015 . CS1 maint: discouraged parameter (link)
  9. ^ Desbrun, Schroder & Barr (1999). «Интерактивная анимация структурированных деформируемых объектов» (PDF) .
  10. ^ а б Седерберг и Парри (1986). "Деформация произвольной формы твердых геометрических моделей" (PDF) .
  11. ^ Матыка и Оллила (2003). «Модель давления для моделирования мягкого тела» (PDF) .
  12. Перейти ↑ Kaufmann, Martin, Botsch & Gross (2008). «Гибкое моделирование деформируемых моделей с использованием разрывных МКЭ Галеркина» (PDF) . CS1 maint: multiple names: authors list (link)
  13. ^ Spillmann, Wagner & Teschner (2006). «Надежное тетраэдрическое соединение треугольных супов» (PDF) .
  14. ^ Bridson, Teran, Молино и Fedkiw (2003). «Построение тетраэдральной сетки на основе адаптивной физики с использованием наборов уровней» (PDF) . CS1 maint: multiple names: authors list (link)
  15. ^ a b Паркер и О'Брайен (2009). «Деформация и разрушение в реальном времени в игровой среде» .
  16. ^ Терзопулос, Платт, Барра & Флейшер (1987). «Упругодеформируемые модели» (PDF) . CS1 maint: multiple names: authors list (link)
  17. ^ Wardetzky, Bergou, Harmon, Зорин и Grinspun (2007). "Дискретные квадратичные энергии кривизны" (PDF) . CS1 maint: multiple names: authors list (link)
  18. ^ a b Мюллер, Heidelberger, Teschner & Gross (2005). «Бессеточные деформации на основе согласования форм» (PDF) . CS1 maint: multiple names: authors list (link)
  19. ^ Steinemann, Otaduy и Гросс (2008). «Быстро адаптивные деформации подгонки формы» .
  20. ^ "Разрушение Хавока" .
  21. ^ Kaldor, Джеймс и Маршнер (2008). «Моделирование трикотажного полотна на уровне пряжи» (PDF) .
  22. ^ Baraff & Уиткин (1998). «Большие шаги в моделировании ткани» (PDF) .
  23. ^ Прово (1997). «Обработка столкновений и самоуничтожений в тканевой модели, предназначенной для дизайнерской одежды». CiteSeerX 10.1.1.89.9232 .  Отсутствует или пусто |url=( справка )
  24. ^ Bridson, Fedkiw & Anderson (2002). «Надежная обработка столкновений, контактов и трения для анимации ткани» (PDF) .
  25. ^ Müller, Гейдельбергский, Hennix & Ratcliff (2006). "Динамика позиции" (PDF) . CS1 maint: multiple names: authors list (link)
  26. ^ Baraff, Уиткин & Kass (2003). «Распутывающая ткань» (PDF) .
  27. Ван Ден Берген (1998). «Эффективное обнаружение столкновений сложных деформируемых моделей с использованием деревьев AABB» (PDF) .
  28. ^ Teschner, Гейдельбергский, Мюллер, Померанец & Gross (2003). «Оптимизированное пространственное хеширование для обнаружения столкновений деформируемых объектов» (PDF) . CS1 maint: multiple names: authors list (link)
  29. ^ Steinemann, Otaduy & Gross (2006). «Быстрое произвольное расщепление деформируемых объектов» (PDF) .
  30. ^ Müller, Кайзер, Nealen, Pauly, Gross & Alexa (2004). «Точечная анимация упругих, пластических и плавящихся объектов» (PDF) . CS1 maint: multiple names: authors list (link)
  31. ^ Сел, Lentine & Fedkiw (2008). «Модель массовой пружины для моделирования волос» .
  32. ^ "Когда виртуальная хирургия сделает разрез?" . Scientific American . 2007 г.

Внешние ссылки [ править ]

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