stringtranslate.com

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

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

Объекты мягкого тела реагируют на силы и могут сталкиваться с другими 3D-объектами. Этот пример был создан с помощью 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] является использование явного метода с низкой жесткостью с использованием специальных методов для избежания нестабильности и чрезмерного растяжения (например, поправок на ограничение деформации).

Динамика на основе позиции

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

Обнаружение столкновений деформируемых объектов

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

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

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

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

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

Другие приложения

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

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

Программное обеспечение, поддерживающее физику мягких тел

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

Игры

Смотрите также

Ссылки

  1. ^ Нилен, Мюллер, Кайзер, Боксерман и Карлсон (2005). «Физически обоснованные деформируемые модели в компьютерной графике». CiteSeerX  10.1.1.124.4664 . {{cite web}}: Отсутствует или пусто |url=( помощь )CS1 maint: multiple names: authors list (link)
  2. ^ «Программное обеспечение Numerion — Физика углерода».
  3. ^ "Мягкие тела PhysX". 24 февраля 2014 г.
  4. ^ "Pixelux's Digital Molecular Matter (DMM)". Архивировано из оригинала 2009-09-21 . Получено 2010-03-07 .
  5. ^ "Havok Cloth". Архивировано из оригинала 2012-02-29 . Получено 2010-03-07 .
  6. ^ "Физика пули". 21 марта 2022 г.
  7. ^ «Ядро Майя».
  8. ^ "Doc:2.4/Manual/Physics/Soft Bodies 2.46 - BlenderWiki". wiki.blender.org . Архивировано из оригинала 2015-11-04 . Получено 2015-09-19 .
  9. ^ Десбрун, Шредер и Барр (1999). «Интерактивная анимация структурированных деформируемых объектов» (PDF) .
  10. ^ ab Sederberg & Parry (1986). «Свободная деформация сплошных геометрических моделей» (PDF) .
  11. ^ Matyka & Ollila (2003). «Модель давления для моделирования мягкого тела» (PDF) .
  12. ^ Кауфманн, Мартин, Ботч и Гросс (2008). «Гибкое моделирование деформируемых моделей с использованием разрывного МКЭ Галёркина» (PDF) .{{cite web}}: CS1 maint: multiple names: authors list (link)
  13. ^ Спилманн, Вагнер и Тешнер (2006). «Надежная тетраэдральная сетка треугольных супов» (PDF) .
  14. ^ Бридсон, Теран, Молино и Федкив (2003). «Генерация тетраэдрической сетки на основе адаптивной физики с использованием наборов уровней» (PDF) .{{cite web}}: CS1 maint: multiple names: authors list (link)
  15. ^ ab Parker & O'Brien (2009). «Деформация и разрушение в реальном времени в игровой среде».
  16. ^ Терзопулос, Платт, Барр и Флейшер (1987). «Упруго деформируемые модели» (PDF) .{{cite web}}: CS1 maint: multiple names: authors list (link)
  17. ^ Wardetzky, Bergou, Harmon, Zorin & Grinspun (2007). «Дискретные квадратичные энергии кривизны» (PDF) .{{cite web}}: CS1 maint: multiple names: authors list (link)
  18. ^ аб Мюллер, Гейдельбергер, Тешнер и Гросс (2005). «Бессеточные деформации на основе сопоставления форм» (PDF) .{{cite web}}: CS1 maint: multiple names: authors list (link)
  19. ^ Steinemann, Otaduy & Gross (2008). "Быстрые адаптивные деформации соответствия формы". Архивировано из оригинала 2011-01-10 . Получено 2010-03-08 .
  20. ^ "Havok Destruction". Архивировано из оригинала 2010-02-21 . Получено 2010-03-07 .
  21. ^ Калдор, Джеймс и Маршнер (2008). «Моделирование трикотажного полотна на уровне пряжи» (PDF) .
  22. ^ Барафф и Виткин (1998). «Большие шаги в моделировании ткани» (PDF) .
  23. ^ Provot (1997). «Управление столкновениями и самостолкновениями в модели ткани, предназначенной для проектирования одежды». CiteSeerX 10.1.1.89.9232 .  {{cite web}}: Отсутствует или пусто |url=( помощь )
  24. ^ Бридсон, Федкив и Андерсон (2002). «Надежная обработка столкновений, контакта и трения для анимации ткани» (PDF) .
  25. ^ Мюллер, Гейдельбергер, Хенникс и Рэтклифф (2006). «Позиционная динамика» (PDF) .{{cite web}}: CS1 maint: multiple names: authors list (link)
  26. ^ Барафф, Виткин и Касс (2003). «Распутывая ткань» (PDF) .
  27. ^ Ван ден Берген (1998). «Эффективное обнаружение столкновений сложных деформируемых моделей с использованием деревьев AABB» (PDF) .
  28. ^ Тешнер, Гейдельбергер, Мюллер, Померанец и Гросс (2003). «Оптимизированное пространственное хеширование для обнаружения столкновений деформируемых объектов» (PDF) .{{cite web}}: CS1 maint: multiple names: authors list (link)
  29. ^ Steinemann, Otaduy & Gross (2006). «Быстрое произвольное расщепление деформирующихся объектов» (PDF) .
  30. ^ Мюллер, Кайзер, Нилен, Паули, Гросс и Алекса (2004). «Точечная анимация эластичных, пластичных и плавящихся объектов» (PDF) .{{cite web}}: CS1 maint: multiple names: authors list (link)
  31. ^ Selle, Lentine & Fedkiw (2008). "A Mass Spring Model for Hair Simulation". Архивировано из оригинала 2009-12-14 . Получено 2010-03-07 .
  32. ^ «Когда виртуальная хирургия станет популярной?». Scientific American . 2007.
  33. ^ "$jigglebone". developer.valvesoftware . Получено 4 августа 2022 г. .

Внешние ссылки