Динамика мягкого тела - Soft-body dynamics

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

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

Деформируемые твердые тела

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

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

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

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

Моделирование методом конечных элементов

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

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

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

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

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

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

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

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

Деформация также может быть обработана традиционным твердотельным физический движок, моделирование движения мягкого тела с использованием сети из нескольких твердых тел, связанных ограничениями, и использование (например) матрица-палитра скиннинг для создания поверхностной сетки для рендеринга. Такой подход используется для деформируемых объектов в Разрушение Хавока.[20]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ДвигательИнтернет сайтЛицензияОписание
Пуляhttp://bulletphysics.orgлицензия zlib
Углеродhttp://numerion-software.comПроприетарный
CryEngine 3http://mycryengine.comНесвободный
Цифровая молекулярная материяhttp://pixelux.comПроприетарный
Ткань Havokhttp://havok.comНесвободный
Гудиниhttps://www.sidefx.com/products/houdini/ПроприетарныйПрограммное обеспечение процедурной генерации и визуальных эффектов - МКЭ с мягким телом, моделирование ткани (Веллум)
Майя nClothhttp://autodesk.com/mayaНесвободный
OpenClothhttps://github.com/mmmovania/opencloth?Коллекция исходных кодов, реализующих алгоритмы моделирования ткани, а также динамику мягких тел в OpenGL.
OpenTissuehttp://opentissue.orgлицензия zlib
Слой абстракции физикиhttp://www.adrianboeing.com/pal/index.htmlЛицензия BSD с 3 пунктамиЕдиный API, поддерживает несколько физических движков.
PhysXhttp://developer.nvidia.com/physxНесвободный
Phyzhttp://phyz.ath.cxВсеобщее достояние
Моделирование открытой архитектуры архитектурыhttp://www.sofa-framework.org/Стандартная общественная лицензия ограниченного применения GNU v2.1 +
Шагhttp://edu.kde.org/step/Стандартная общественная лицензия GNU v2
SyFlexhttp://syflex.bizНесвободный
Unreal Enginehttps://unrealengine.comПроприетарный
Вега ФЭМhttp://run.usc.edu/vegaЛицензия BSD с 3 пунктами
Блендер (программное обеспечение)https://www.blender.org/Бесплатно и с открытым исходным кодом
Зива VFXhttp://zivadynamics.comПроприетарныйПрограммное обеспечение для моделирования персонажей - мышцы, жир, кожа и ткань МКЭ

Игры

ИграИнтернет сайтЛицензияОписание
BeamNG.drivehttp://beamng.comНесвободныйКоммерческая игра-песочница, основанная на физике мягких транспортных средств. Имитирует структуру автомобиля, а не его работу.
Буровые установки стержнейhttps://rigsofrods.github.ioСтандартная общественная лицензия GNU v3Бесплатный симулятор автомобиля с открытым исходным кодом.
Wreckfesthttp://nextcargame.comНесвободныйДерби гоночная игра. Физика мягких тел реализована для надстроек, но детали и компоненты (например, двигатель) используют простое моделирование повреждений.

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

использованная литература

  1. ^ Неален, Мюллер, Кейзер, Боксерман и Карлсон (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. Получено 2015-09-19.
  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. ^ Тешнер, 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.

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