Jump to content

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

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

Duration: 6 seconds.
Объекты Softbody реагируют на силы и могут сталкиваться с другими 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] В настоящее время это, как правило, слишком затратно в вычислительном отношении для тканевых систем реального времени.

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

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

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

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

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

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

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

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

[ редактировать ]
Двигатель Веб-сайт Лицензия Описание
Пуля http://bulletphysics.org лицензия zlib
Углерод http://numerion-software.com Собственный
CryEngine 3 http://mycryengine.com Несвободный
Цифровая молекулярная материя http://pixelux.com Собственный
Ткань Хавок http://havok.com Несвободный
Гудини https://www.sidefx.com/products/houdini/ Собственный Программное обеспечение процедурной генерации и визуальных эффектов — FEM с мягким телом, моделирование ткани (Vellum)
Майя нТкань http://autodesk.com/maya Несвободный
OpenCloth https://github.com/mmmovania/opencloth ? Коллекция исходных кодов, реализующих алгоритмы моделирования одежды, а также динамику мягких тел в OpenGL.
OpenTissue http://opentissue.org лицензия zlib
Слой физической абстракции http://www.adrianboeing.com/pal/index.html Лицензия BSD из 3 пунктов Единый API, поддерживает несколько физических движков.
Физика http://developer.nvidia.com/physx Несвободный
Физ http://phyz.ath.cx Общественное достояние
Архитектура открытой платформы моделирования http://www.sofa-framework.org/ Меньшая стандартная общественная лицензия GNU v2.1+
Исходный движок https://developer.valvesoftware.com Собственный Поддерживает использование моделируемой физики волос и одежды. [33]
Шаг http://edu.kde.org/step/ Стандартная общественная лицензия GNU v2
СиФлекс http://syflex.biz Несвободный
Крутящий момент https://torque3d.org/torque3d/ МОЯ лицензия
Нереальный движок https://unrealengine.com Собственный
Вега ПЯТЬ https://viterbi-web.usc.edu/~jbarbic/vega/ Лицензия BSD из 3 пунктов
Блендер (программное обеспечение) https://www.blender.org/ Стандартная общественная лицензия GNU v2
Зива визуальные эффекты http://zivadynamics.com Собственный Программное обеспечение для моделирования персонажей — мышцы, жир, кожа и ткань методом FEM.
Игра Веб-сайт Лицензия Описание
BeamNG.drive http://beamng.com Несвободный Коммерческая игра в стиле песочницы, основанная на физике транспортных средств с мягким кузовом. Имитирует структуру транспортного средства, а не его работу.
Краш Эффекты Инк. https://www.crasheffects.com/ Несвободный Симулятор автомобилестроения/краш-тестов от первого лица. Для надстроек реализована физика мягких тел, некоторые компоненты автомобиля используют простое моделирование повреждений.
Оснастки из удилищ https://rigsofrods.github.io Стандартная общественная лицензия GNU v3 Бесплатный симулятор автомобиля с открытым исходным кодом.
Фестиваль крушения http://nextcargame.com Несвободный Гоночная игра Дерби. Физика мягких тел реализована для надстроек, но детали и компоненты (например, двигатель) используют простое моделирование повреждений.

См. также

[ редактировать ]
  1. ^ Нилен, Мюллер, Кайзер, Боксерман и Карлсон (2005). «Физически обоснованные деформируемые модели в компьютерной графике». CiteSeerX   10.1.1.124.4664 . {{cite web}}: Отсутствует или пусто |url= ( помощь ) CS1 maint: несколько имен: список авторов ( ссылка )
  2. ^ «Программное обеспечение Numerion — физика углерода» .
  3. ^ «Мягкие тела PhysX» . 24 февраля 2014 г.
  4. ^ «Цифровая молекулярная материя (DMM) Pixelux» . Архивировано из оригинала 21 сентября 2009 г. Проверено 7 марта 2010 г.
  5. ^ «Ткань Хавок» . Архивировано из оригинала 29 февраля 2012 г. Проверено 7 марта 2010 г.
  6. ^ «Физика пуль» . 21 марта 2022 г.
  7. ^ «Ядро Майя» .
  8. ^ «Док:2.4/Руководство/Физика/Мягкие тела 2.46 — BlenderWiki» . wiki.blender.org . Архивировано из оригинала 4 ноября 2015 г. Проверено 19 сентября 2015 г.
  9. ^ Дебрун, Шредер и Барр (1999). «Интерактивная анимация структурированных деформируемых объектов» (PDF) .
  10. ^ Jump up to: а б Седерберг и Парри (1986). «Деформация твердотельных геометрических моделей произвольной формы» (PDF) .
  11. ^ Матика и Оллила (2003). «Модель давления для моделирования мягких тел» (PDF) .
  12. ^ Кауфманн, Мартин, Ботч и Гросс (2008). «Гибкое моделирование деформируемых моделей с использованием разрывного МКЭ Галёркина» (PDF) . {{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  13. ^ Спилманн, Вагнер и Тешнер (2006). «Надежная тетраэдральная сетка треугольных супов» (PDF) .
  14. ^ Бридсон, Теран, Молино и Федкив (2003). «Генерация тетраэдральной сетки на основе адаптивной физики с использованием наборов уровней» (PDF) . {{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  15. ^ Jump up to: а б Паркер и О'Брайен (2009). «Деформация и разрушение в реальном времени в игровой среде» .
  16. ^ Терзопулос, Платт, Барр и Флейшер (1987). «Упругодеформируемые модели» (PDF) . {{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  17. ^ Вардецкий, Бергу, Хармон, Зорин и Гринспан (2007). «Дискретные энергии квадратичной кривизны» (PDF) . {{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  18. ^ Jump up to: а б Мюллер, Гейдельбергер, Тешнер и Гросс (2005). «Бессеточные деформации на основе сопоставления форм» (PDF) . {{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  19. ^ Штайнеманн, Отадуй и Гросс (2008). «Быстрые адаптивные деформации, соответствующие форме» . Архивировано из оригинала 10 января 2011 г. Проверено 8 марта 2010 г.
  20. ^ «Разрушение Хавока» . Архивировано из оригинала 21 февраля 2010 г. Проверено 7 марта 2010 г.
  21. ^ Калдор, Джеймс и Маршнер (2008). «Имитация трикотажного полотна на уровне пряжи» (PDF) .
  22. ^ Барафф и Уиткин (1998). «Большие шаги в моделировании ткани» (PDF) .
  23. ^ Провот (1997). «Управление столкновениями и самостолкновениями в тканевых моделях, предназначенных для проектирования одежды». CiteSeerX   10.1.1.89.9232 . {{cite web}}: Отсутствует или пусто |url= ( помощь )
  24. ^ Бридсон, Федкив и Андерсон (2002). «Надежная обработка столкновений, контактов и трения для тканевой анимации» (PDF) .
  25. ^ Мюллер, Гейдельбергер, Хенникс и Рэтклифф (2006). «Позиционная динамика» (PDF) . {{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  26. ^ Барафф, Виткин и Касс (2003). «Распутывание ткани» (PDF) .
  27. ^ Ван Ден Берген (1998). «Эффективное обнаружение столкновений сложных деформируемых моделей с использованием деревьев AABB» (PDF) .
  28. ^ Тешнер, Гейдельбергер, Мюллер, Померанец и Гросс (2003). «Оптимизированное пространственное хеширование для обнаружения столкновений деформируемых объектов» (PDF) . {{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  29. ^ Штайнеманн, Отадуй и Гросс (2006). «Быстрое произвольное разделение деформируемых объектов» (PDF) .
  30. ^ Мюллер, Кайзер, Нилен, Поли, Гросс и Алекса (2004). «Точечная анимация упругих, пластических и плавящихся объектов» (PDF) . {{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  31. ^ Селле, Лентин и Федкив (2008). «Модель Mass Spring для моделирования волос» . Архивировано из оригинала 14 декабря 2009 г. Проверено 7 марта 2010 г.
  32. ^ «Когда виртуальная хирургия достигнет успеха?» . Научный американец . 2007.
  33. ^ "$jigglebone" . разработчик.valvesoftware . Проверено 4 августа 2022 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a07be5b4cc28b7286232fa8f37c01b30__1718310720
URL1:https://arc.ask3.ru/arc/aa/a0/30/a07be5b4cc28b7286232fa8f37c01b30.html
Заголовок, (Title) документа по адресу, URL1:
Soft-body dynamics - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)