Tutorial on Cloth Modelling

обучающая статья по моделированию ткани

Глава 1:

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


Перевод главы "Геометрическое моделирование" учебного пособия "Tutorial on Cloth Modelling". Источник: http://www.geocities.com/SiliconValley/Heights/5445/ - сайт, который называется "Home page of seawood and beowulf".
Полный вариант статьи на английском языке:
http://www.geocities.com/SiliconValley/Heights/5445/cloth.html

Это учебное пособие о моделировании ткани (ее поведения) в различных ситуациях: ткань, наброшенная на твердое тело, ткань, драпированная на манекенщице, свободно висящая ткань, ткань, находящаяся в воздухе и т.д. Мы дадим общий краткий обзор различных методов. Мы будем иметь дело с одним методом подробно и покажем, как сделать собственную модель симуляции одежды, используя этот метод.

Введение

Можно классифицировать более ранние усилия ученых по моделированию сложных складок и драпировок ткани, определив различные группы:
Аниматоры компьютерной графики , которые поглощены только драпировкой и формой ткани с точки зрения для получения естественных эффектов, оживляющих картинку. Ими были разработаны модели ткани, основанные на ее поведении. При этом в работе не уделялось внимание физическим свойствам тканей. Такие модели не могут использоваться для предсказания, каким образом та или иная ткань поведет себя в тои или иной ситуации. Инженеры автоматизированного проектирования , которые моделировали ткань в терминах ее механического поведения. Проблема моделирования ткани рассматривалась как проблема структурной механики. Упор делался на измерение традиционных механических свойств, например, модуля юнга, отношения Пуассона и т.д. Как оказалось, эти модели не являются адекватными для предсказания драпировки ткани, т.к. они не рассматривали внутреннюю структуру ткани - переплетение нитей. В нашем обучающем пособии данный метод не будет рассматриваться. Работы, объединяющие два вышеупомянутых подхода. Эта работа была проведена в основном благодаря дизайнерам одежды, которым моделирование тканей требовалось с профессиональной точки зрения. Дизайнеру, например, для удачного проектирования интерьера, хотелось бы сравнить, как будет выглядеть, шерстяной занавес по сравнению с хлопковым.

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

Компьютерные Модели Мультипликации

Компьютерные аниматоры, моделирующие ткань, не были обеспокоены внутренними свойствами тканей, различающимися в зависимости от типа ткани. Их техникой было представить "ткань как материал" или "среднюю ткань", которая вела бы себя определенным образом, в зависимости от заданных ограничений. Например: рендеринг квадратного куска ткани, наброшенного на сферу.

В самом подходе можно выделить три части.

Геометрические модели

Геометрические модели не рассматривают физических свойств тканей. Скорее, они сосредотачиваются на внешнем виде такни, особенное внимание уделяется сгибам и складкам которые представляются геометрическими уравнениями. Геометрические методы требуют в значительной степени пользовательского вмешательства. Все они очень специфичны. Например, одна техника может очень хорошо представить ткань, подвешиваемую (фиксируемую) в нескольких точках. Другая техника может очень хорошо представить складки и сгибы.

Работа Вейла (Weil)

Вейл1 был первым, кто моделировал ткань каким-либо образом. Его работа 1986 года использовала простую геометрическую модель, произошедшую из теории кабеля. Он работал над специфической проблемой подвешивания тканей на конечном множестве точек (например, на трех или четырех точках).

Кабель под собственным весом в устойчивом положении формировал цепную кривую. Эта кривая описывалась уравнением: y = a cosh(x/b)

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

подвешеный в двух точках кабель

Пусть, ткань подвешена на точках. Располагаем цепные кривые между двумя диагоналями, которые, разумеется, пересекаются. Все,что нужно сделать - это найти результирующую кривую, но чтоб упростить работу - игнорируем нижнюю из двух кривых.

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

Другой геометрический иетод

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

Метод предназначается, для моделирования полигонального куска ткани, подвешенного в каждой вершине на некоторой высоте. Cмотрите на фигуру ниже.

схематическое изображение ткани, подвешенной на точках

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

Для прорисовки висящей ткани, находим высоту всех точек в положении равновесия. Мы рассматриваем четырехугольник, который зафиксирован в 4 точках. Пусть это будет квадрат. Квадрат разделяется а конечное число ячеек. Мы рассматриваем только точки которые "падают" внутрь четырехугольника. В границах же мы берем точку, самую близкую к линии, непосредственно соединяющей фиксированные вершины.

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

Первый шаг - найти форму границ, потому что это легче всего.

Какова наиболее вероятная форма, которую ткань примет между двумя вершинами? Это, наиболее вероятно, цепная линия. Причины выбора цепной линии в качестве формы:

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

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

Проблема теперь сокращена до обнаружения маршрута для кривой AB к CD с граничным условием нашей AD и BC на гранях для всех точек. Это можно расматривать как как усреднение эффекта этих 4 граничных условий для всех точек.

На каждую внутреннюю точку влияют только его соседние 4 точки.

Hi,j = { Hi,j-1 + Hi,j+1 + Hi-1,j + Hi+1,j } / 4,

где Hi,j - высота точки в (i,j).

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

abs ( Hi,jk - Hi,jk+1 ) <= minvalue,

где minvalue устанавливается соответственно желаемой точности.

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

Преимущества этого метода:

  1. Скорость рендеринга
  2. Ткань, которая является текстурированной (то есть имеет образец представления) также может подвергаться рендерингу
  3. Требует относительно мало памяти и аппаратных средств
  4. После вычисления поверхности, рендеринг может быть произведен в любом свободно доступном трехмерном редакторе.

Недостатки метода:

  1. Мы полностью игнорируем факт, что ткань растягивается
  2. Предположения являются просто эмпирическими и не обоснованы

Устанавливая цепную кривую между 2 вершинами мы используем уравнение цепной линии

y = acosh ( x + b)

Мы имеем две точки и две константы a, b. Используя две точки, мы вычисляем a и b.

Мы моделировали квадратный кусок ткани. Наша цепная линия уменьшается до y  =  a;  cosh  (x)  для всех 4 границ. После заполняются внутренние точки.

Ссылки относящиеся к моделированию тканей

  1. J. Weil, The Synthesis of Cloth Objects, Computer Graphics, (Proc SIGGRAPH), Vol 20, No 4, 1986
  2. C. Feynmann, Modelling the Appearance of Cloth, masters thesis, Dept of EECS, Massachusetts Inst. of Technology, Cambridge, 1986
  3. D. Terzopoulos et al, Elastically Deformable Models, Computer Graphics (Proc SIGGRAPH), Vol 21, No 4, 1987
  4. Y. Sakaguchi et al, PARTY: Physical Environment of Artificial Reality for Dress Simulation - A Dynamically Deformabel Model of Dress, Trans. Soc. of Electronics, Information and Communications, Dec 1991
  5. X. Provot, Deformation Constraints in a Mass-spring Model to Describe Rigid Cloth Behaviour, Proc of Graphics Interface, 1995
  6. H.N. Ng et al, A System for Modelling and Visualization of Cloth Materials, Computers and Graphics, Vol 19, No 3, 1995
  7. Li Ling et al, A Model for Animating the Motion of Cloth, International Journal of Systems and Applications in Computer Graphics, November 1994
  8. David Breen et al, A Particle-Based Model for Simulating the Draping Behaviour of Woven Cloth, Textile Research Journal, Vol 64, No 11, 1994
  9. Bernhard Eberhardt et al, A Fast, Flexible, Particle-System Model for Cloth Draping, IEEE Computer Graphics and Applications, September 1996

Другие ссылки

  1. Reeves, W.T. and R. Blau, Approximate and Probabilistic Algorithms for Shading and Rendering Structured Particle Systems, Computer Graphics (Proc SIGGRAPH), Vol 19, No 3, 1985
  2. Sims K, Particle Animation and Rendering Using Data Parallel Computation, Computer Graphics (Proc SIGGRAPH), Vol 24, No 4, 1990
  3. Reynolds C.W., Flocks, Herds and Schools: A Distributed Behavioral Model, Computer Graphics (Proc SIGGRAPH), Vol 21, No 4, 1987