Динамика мягких тел — это область компьютерной графики , которая фокусируется на визуально реалистичном физическом моделировании движения и свойств деформируемых объектов (или мягких тел ). [1] Приложения в основном используются в видеоиграх и фильмах. В отличие от моделирования твердых тел , форма мягких тел может меняться, что означает, что относительное расстояние двух точек на объекте не фиксировано. Хотя относительное расстояние точек не фиксировано, ожидается, что тело в некоторой степени сохранит свою форму (в отличие от жидкости ). Область применения динамики мягких тел довольно широка, включая моделирование мягких органических материалов, таких как мышцы, жир, волосы и растительность, а также других деформируемых материалов, таких как одежда и ткани. Как правило, эти методы обеспечивают только визуально правдоподобные эмуляции, а не точные научные/инженерные моделирования, хотя есть некоторые пересечения с научными методами, особенно в случае моделирования конечных элементов. Несколько физических движков в настоящее время предоставляют программное обеспечение для моделирования мягких тел. [2] [3] [4] [5] [6] [7]
Моделирование объемных твердых мягких тел [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] В настоящее время это, как правило, слишком затратно с точки зрения вычислений для систем ткани в реальном времени.
Для эффективного обнаружения столкновений примитивы, которые определенно не сталкиваются, должны быть идентифицированы как можно скорее и исключены из рассмотрения, чтобы избежать потери времени. Для этого необходима некоторая форма схемы пространственного подразделения , чтобы избежать грубой силы проверки примитивных столкновений. Используемые подходы включают:
Другие эффекты, которые можно моделировать с помощью методов динамики мягких тел:
Моделирование жидкостей в контексте компьютерной графики обычно не считается динамикой мягких тел, которая обычно ограничивается моделированием материалов, которые имеют тенденцию сохранять свою форму. Напротив, жидкость принимает форму любого сосуда, в котором она содержится, поскольку частицы связаны между собой относительно слабыми силами.
{{cite web}}
: Отсутствует или пусто |url=
( помощь )CS1 maint: multiple names: authors list (link){{cite web}}
: CS1 maint: multiple names: authors list (link){{cite web}}
: CS1 maint: multiple names: authors list (link){{cite web}}
: CS1 maint: multiple names: authors list (link){{cite web}}
: CS1 maint: multiple names: authors list (link){{cite web}}
: CS1 maint: multiple names: authors list (link){{cite web}}
: Отсутствует или пусто |url=
( помощь ){{cite web}}
: CS1 maint: multiple names: authors list (link){{cite web}}
: CS1 maint: multiple names: authors list (link){{cite web}}
: CS1 maint: multiple names: authors list (link)