P S Karthikeyan | P S Ranganathan |
III year, B.Tech | IV year, B.Tech |
Aerospace Engineering | Computer Science Engineering |
Indian Institute of Technology | Sri Venkateswara College of Engg. |
Madras | Pennalur, Madras |
Это учебное пособие о моделировании ткани (ее поведения) в различных ситуациях: ткань, наброшенная на твердое тело, ткань, драпированная на манекенщице, свободно висящая ткань, ткань, находящаяся в воздухе и т.д. Мы дадим общий краткий обзор различных методов. Мы будем иметь дело с одним методом подробно и покажем, как сделать собственную модель симуляции одежды, используя этот метод.
Аниматоры компьютерной графики , которые поглощены только драпировкой и формой ткани с точки зрения для получения естественных эффектов, оживляющих картинку. Ими были разработаны модели ткани, основанные на ее поведении. При этом в работе не уделялось внимание физическим свойствам тканей. Такие модели не могут использоваться для предсказания, каким образом та или иная ткань поведет себя в тои или иной ситуации. | Инженеры автоматизированного проектирования , которые моделировали ткань в терминах ее механического поведения. Проблема моделирования ткани рассматривалась как проблема структурной механики. Упор делался на измерение традиционных механических свойств, например, модуля юнга, отношения Пуассона и т.д. Как оказалось, эти модели не являются адекватными для предсказания драпировки ткани, т.к. они не рассматривали внутреннюю структуру ткани - переплетение нитей. В нашем обучающем пособии данный метод не будет рассматриваться. | Работы, объединяющие два вышеупомянутых подхода. Эта работа была проведена в основном благодаря дизайнерам одежды, которым моделирование тканей требовалось с профессиональной точки зрения. Дизайнеру, например, для удачного проектирования интерьера, хотелось бы сравнить, как будет выглядеть, шерстяной занавес по сравнению с хлопковым. |
Таким образом, в результате изучения статьи, вы ознакомитесь с первым из перечисленных методов, и подробно изучите работу третьего метода. Параллельно с чтением статьи вы будете иметь возможность написания собственного кода программы моделирования тканей. Второй метод, основывающийся на структурной механике, в статье не рассматривается.
Компьютерные аниматоры, моделирующие ткань, не были обеспокоены внутренними свойствами тканей, различающимися в зависимости от типа ткани. Их техникой было представить "ткань как материал" или "среднюю ткань", которая вела бы себя определенным образом, в зависимости от заданных ограничений. Например: рендеринг квадратного куска ткани, наброшенного на сферу.
В самом подходе можно выделить три части.
Геометрическое моделирование: ткань не моделируется физически как новая структура. Эмпирически расширяются другие теории механики. Эти методы очень быстрые вычислительном отношении, но не очень привлекательными визуально.
Физическое моделирование с применением энергетических функций : ткань рассматривается как a некая новая структура, модель которой и предлагается. Эти методы - модели минимизации энергии. Их основа - закон природы: каждое тело стремиться занять устойчивое положение, в котором его потенциальная энергия минимальна.
Каждое тело имеет потенциальную энергию и кинетическую энергию. Кинетическая энергия, как известно, зависит от его скорости, и равна (mv2)/2 . Потенциальная энергия ткани - это нечто, чего мы не знаем, но можем определить согласно выбраной модели.
Как только получена потенциальная и кинетическая энергия, наша проблема - наполовину решена. Все, что мы должны сделать, - определить ткань, используя сетку частиц для дискретизации проблемы. Далее - уравнение движения Лагранжа:
Уравнение Лагранжа - фундаментальное уравнение кинематики, которое используется для определения устойчивого положения, при условии, что известна энергия тела. Физически уравнение означает что:
Для решения дифференциального уравнения, следует ее дискретизировать проблему. Кроме того, для полного решения требуется граниченое условие. Граничные условия будут таковы:
Когда время t = 0, ткань находится в положении покоя. Скорость всех точкек равна нулю. Мы можем произвольно определить пространственное граничное условие, оределяющее местоположение всех точек в t = 0. Например, если мы накидываем ткань на куб, то очевидно будет начать с ткани, которая лежит, лист бумаги на кубе - прямоугольник в горизонтальной плоскости, а затем позволить ей падать и создавать складки. См. фигуру ниже.
Это дает дальнейший набор i * j условий.
Использование этих граничных условий и решение дифференциальных уравнений в численном виде даст ряд уравнений, включающих позиции элементов сетки (i, j) для всех точек сетки.
Решение этих уравнений приведет к устойчивому положению точек сетки, который составляет драп ткани.
Физическое моделирование с использованием силы Включим силу в физическую модель поведения ткани. Будем использовать закон:
где r - вектор положения точки. Мы определяем все силы (внутренние и внешние), которые действуют на ткань. Дискретизируем проблему и снова одновременно решаем набор уравнений, чтобы получить положение частиц в устойчивом положении, как в предыдущем методе.
Геометрические модели не рассматривают физических свойств тканей. Скорее, они сосредотачиваются на внешнем виде такни, особенное внимание уделяется сгибам и складкам которые представляются геометрическими уравнениями. Геометрические методы требуют в значительной степени пользовательского вмешательства. Все они очень специфичны. Например, одна техника может очень хорошо представить ткань, подвешиваемую (фиксируемую) в нескольких точках. Другая техника может очень хорошо представить складки и сгибы.
Вейл1 был первым, кто моделировал ткань каким-либо образом. Его работа 1986 года использовала простую геометрическую модель, произошедшую из теории кабеля. Он работал над специфической проблемой подвешивания тканей на конечном множестве точек (например, на трех или четырех точках).
Кабель под собственным весом в устойчивом положении формировал цепную кривую. Эта кривая описывалась уравнением: y = a cosh(x/b)
Ту же логику можно распространить на трехмерное пространство для ткани. Ткань, подвешенная на конечном числе точек - логическое расширение цепной кривой в плоскости. Таким образом мы можем использовать систему цепных кривых, чтобы представить ткань.
Пусть, ткань подвешена на точках. Располагаем цепные кривые между двумя диагоналями, которые, разумеется, пересекаются. Все,что нужно сделать - это найти результирующую кривую, но чтоб упростить работу - игнорируем нижнюю из двух кривых.
На данном этапе мы имеем грубую каркасную модель формы ткани. Далеес следует улучшать форму, деля ткань на меньшие и меньшие треугольники и располагая в них цепные линии. В зависимости от требуемой точности моделируемой формы, определяется момент прекращения итераций.
Этот метод, разработанный автором статьи, представлен впервые в этой обучающей программе. Метод подобен методу Вейла, в том смысле, что он тоже базируется на теории кабеля.
Метод предназначается, для моделирования полигонального куска ткани, подвешенного в каждой вершине на некоторой высоте. Cмотрите на фигуру ниже.
Вклад автора заключается в расширении логики прорисвоки многоугольника для рендеринга его трехмерной формы. Чтоб упростить объяснения, рассмотрим ткань, которая имеет форму четырехугольника.
Для прорисовки висящей ткани, находим высоту всех точек в положении равновесия. Мы рассматриваем четырехугольник, который зафиксирован в 4 точках. Пусть это будет квадрат. Квадрат разделяется а конечное число ячеек. Мы рассматриваем только точки которые "падают" внутрь четырехугольника. В границах же мы берем точку, самую близкую к линии, непосредственно соединяющей фиксированные вершины.
Мы имеем эффективно дискретизованную проблему. Все, что мы должны сделать теперь - найдти высоту всех точек в нашей сетке, которые лежат в четырехугольнике.
Первый шаг - найти форму границ, потому что это легче всего.
Какова наиболее вероятная форма, которую ткань примет между двумя вершинами? Это, наиболее вероятно, цепная линия. Причины выбора цепной линии в качестве формы:
Мы расширяем эту логику на все вершины многоугольника. Так теперь мы имеем ряд цепных кривых, которые дают границу ткани. Мы должны определить форму промежуточных участков ткани.
Проблема теперь сокращена до обнаружения маршрута для кривой AB к CD с граничным условием нашей AD и BC на гранях для всех точек. Это можно расматривать как как усреднение эффекта этих 4 граничных условий для всех точек.
На каждую внутреннюю точку влияют только его соседние 4 точки.
где Hi,j - высота точки в (i,j).
Используя граничное условие, можно получить первое приближение местоположения всех точек. Но итерации будут продолжаться, пока не будет жостигнута устойчивое положение. Это может быть определено как
где minvalue устанавливается соответственно желаемой точности.
Теперь мы имеем местоположение всех точек. Чтоб прорисовать форму ткани мы размещаем многоугольник между 4 точками и выполняем трассировку лучей в сцене.
Преимущества этого метода:
Недостатки метода:
Устанавливая цепную кривую между 2 вершинами мы используем уравнение цепной линии
Мы имеем две точки и две константы a, b. Используя две точки, мы вычисляем a и b.
Мы моделировали квадратный кусок ткани. Наша цепная линия уменьшается до y =  a; cosh (x) для всех 4 границ. После заполняются внутренние точки.