Cloth vs. Conform

2f7cff680d0dec6186b97af657551c62.jpg

 Наверно точнее будет не "против", а "вместо".

 В примере будем использовать самые простые формы, чтобы легче было понять суть алгоритма.

 Для начала немного теории. Параметры полотна будут интересны только если мы пожелаем дополнить метод. Но это может потребоваться  в самом конце, для  самых любознательных, поэтому их мы затрагивать не будем. Нам важны всего два параметра объекта твердой коллизии Depth и  Offset. Разберемся как они работают.

 Offset - расстояние которое будет выдержанно между поверхностью объекта твердой коллизии и полотном во время симуляции. Параметр работает со  стороны поверхности в которую направлены нормали. Тут все просто.

 Depth - несколько интереснее. Это расстояние от поверхности (обратите особое внимание, именно поверхности, а не объема) со  стороны противоположной нормалям. Любая вершина полотна, проникшая на сторону противоположную направлению нормалей меньше  заданного, будет вытолкнута на противоположную сторону. Это распространяется на все вершины, даже заблокированные, если они  участвуют в твердой коллизии. Как можно видеть из прилагаемой схемы, его величина может быть большой только на плоских  поверхностях, на объемах необходимо следить чтобы область его влияния на различных участках не пересекалась. Такое  пересечение не критично, но если на вершину будут влиять сразу различные участки поверхности - это может  приводить к  нежелательным артефактам.

Оба параметра задаются в системных единицах.

6cb0f3ed2fcf6cf2edfc2fa038d2bd43.jpg

 Для примера за объект твердой коллизии (Wrap-To) возьмем геосферу.

402d24c9276f1a8b77e00d4101a9cae4.jpg

 Поверхность которой сделаем рельефной с помощью нойза.

2210168dbaf9247bd4a4716538d69dda.jpg

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

4e589d94679638e0fbe1921a6b82cf97.jpgebfc36bf34dc1d2cfeea3cb67e84fcbd.jpga46b2c865a946973c1161525d315fc4e.jpg

 Наш объект твердой коллизии почти готов.

 Теперь небольшое отступление. Отправимся в цех штамповки.Штамповка - процесс обработки заготовки давлением. Если простым языком, то заготовка  помещается в пресс, где с помощью совмещения двух форм (пуансона и матрицы) она приобретает заданную ими форму. Именно этот алгоритм мы и воплотим в нашем виртуальном мире. ;)

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

db233a317adafa0fc61fa338f63caa84.jpg

 Выворачиваем нормали.

07fc137cbdcdb79bfd35952fae6434b5.jpg

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

- путем нехитрых манипуляций создать форму из существующей ( оптимизация, квадрафикация, смуз сетки)

- создать лоу заготовку и затем сгладить

- отрисовать заготовку по поверхности и сгладить

- сглаженный примитив (чем мы и воспользуемся)

 Боксик.

73a6adf645d43b47315d2b08ea0be706.jpg

 Сглаживаем до нужной плотности сетки (1) и центрируем с геосферой (2). Чем больше сетка будет приближенна по форме и объему к исходной, тем проще будет процесс симуляции.

1226ceb96c1835fc4e923d6bc16e257b.jpg

 На оба объекта модификатор Cloth, где бокс полотно, а геосфера  -  объект твердой коллизии. Для полотна уменьшим изгиб (1), позволим лучше растягиваться уменьшив стрейч (2) и в зависимости от формы изменим скейл (3).

49b807a9f11fa4142cbf35a228b5f53c.jpg

 Для геосферы - Depth исходя из выше изложенного (1), Offset на величину 1мм.(2) (как в Shell, если забыли). И также обнулим  все трение (3).

bec8a54d7b3170f5334425dd319e35f4.jpg

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

0098036b29a4097d7e4bc8f83a0edf08.jpg

 Результат достигнут, наша форма точно повторила исходную.

2d921191db648973a7709922f84c4217.jpg

 Файл примера можно забрать тут , версия 2010.

 Разумеется сразу напрашиваются вопросы: "Зачем это?  Как это использовать? Если для ретопологии, то существует множество других, более простых способов." Спорить не буду. Грешен и я использованием змешера.) Сам использую данный алгоритм или его части в процессе моделирования, для быстрого восстановления формы после релакса,  нарезки, смуза.

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

  Как Вы могли понять, основное отличие данного алгоритма от других это то, что мы как бы обтягиваем исходную форму  эластичным, плотно прилегающим материалом. А следовательно есть небольшое продолжение.

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

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

-используя группы можем стянуть или расслабить сетку в нужных местах.

-подтянут полотно в интерактивном режиме.

-и даже остается вариант редактирования формы через исходную.

Вот! Как то так! :)

Если что не так, Извините ! Удачи !!!

тканьретопологиясоответствоватьсовпадатьclothconform

Комментарии (15)

+1
Quasar
В блендере есть простой модификатор для таких целей:) Без всяких симуляций + с другими плюшками. Спасибо за урок!
+1
by4ik
это какой?
+3
Quasar
Shrinkwrap и wrap
+2
AlexHappy
Благодарю за урок! Хотелось бы ещё в конце увидеть какой-нибудь реальный пример или парочку примеров использования данного метода и его преимуществ.
+2
Quasar
Я таким способом делал пояса персонажу, и ретопил по быстрому подушки. Других применений пока не нашел.
+4
Tmin
AlexHappy
Я упомянул в конце урока где сам иногда использую данный способ.
Это вариант когда в процессе редактирования хочется вернуть форму к варианту с низа по стеку, оставив топологию с вершины. В этом случае даже делать двойную сетку у объекта твердой коллизии нет необходимости.
Остальные случаи наверно следуют из названия. Т.е. вместо conform. Основным отличием от него будет то, что он не сделает объект составным, а лишь добавит модификатор в стеке.
Главное, я знаю этот способ и при необходимости смогу применить на практике!
Теперь его знаете и вы !!!...
0
Romaneus
Май спасён!)))
+1
h1tman
Немного не в тему, но как включить отдельное отображение количества полигонов выбранного объекта?
+5
Tmin
Views => SteeringWheels => Configure => Statistics => Total+Selection
+2
MARSALA
Вау, надо будет разобрать на досуге.Спасибо за урок!
+2
Чингисхан
Очень полезная статья!Я и не думал о таком подходе.В некоторых случаях будет очень полезно, так как Zremesh не всегда корректно работает.
+1
Tmin
Не надо ругать Zremesh, его этим не заменишь. Вот дополнить его можно, например чтобы выровнять места швов для развертки.
+2
usov.80
Спасибо Виталь!)
+1
Kara4o
"Любая вершина полотна, проникшая на сторону противоположную направлению нормалей меньше заданного, будет вытолкнута на противоположную сторону." В смысле, вытолкнута обратно? Имхо неудачно сформулировано...
0
Tmin
Сам вижу! Но как описать сей процесс лучше в голову не приходит. )