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

f20842086a7c776a3fb02ee211dd794b.jpg

С чего собственно начинается любой моделинг ? Рефы !!! Если у нас не стоит задача смоделить какой-то конкретный диван, то находим рефы в интернете или сразу отправляемся на сайты популярных производителей. Вот например некоторые из них Cassina , Poliform . Для примера в уроке остановим свой выбор на диване Bolton от Poliform.

4db1f9fb28f9b494188e245e117f486f.jpg

На сайте производителя почти всегда можно найти размеры его продукции, а у уважающих себя фирм, как бонус для нас, размешены модели в 3d формате. Чем мы и не замедлим воспользоваться ! ) Скачиваем архив, распаковываем, и выбираем интересующую нас конфигурацию.Как видим моделька очень слабая, с ужасной сеткой, и совсем непригодна для дальнейшей обработки.

6e97bf209d73dce46d37fd4955c2f6b7.jpg

Также помним о правилах 3ddd, запрещающих использовать элементы чужих моделей для размещаемых в базе. Но нам никто не может запретить воспользоваться скачанным как размерным эталоном. Итак, создаем свою сетку:

1. основание, которое не будет симулироваться.

92f1bb8dc87df6a0247882749a3511a3.jpg

Не забываем сразу сделать мапинг и текстурим.

2. элементы которые будут симулироваться. Основное требование к сетке максимальная равномерность и разумная плотность, от которой будет зависеть качество результата и скорость симуляции. Главное тут правильно уловить этот баланс. Плотность делаю 8-9 мм. по длине ребра. Создаем первый элемент.

26e9307ba982c262754d3fc0aeafba8a.jpg

Наносим материал и делаем под него развертки.

b83eb713929b79a1a5ff9bd0293fe61e.jpg

a30f6ae8b455195ce786c86b5b192d89.jpg

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

85eaace32c9d25fd6a10bd0afc5533c9.jpg

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

Нарезаем остальные элементы из сделанной сетки.

9dd56e5ae39f9e5965b840f48294730a.jpg

Набираем полный комплект деталей.

72277d708b97d8b91dbdbe2db7f0d0c0.jpg

Для симуляции нам потребуется дополнительный объект для твердой коллизии, который ограничит движение полотна с низу. Без толщины, с нормалями направленными в сторону полотна, вот такого вида.

0b6fde06a7b9f6a1b0f0216a15e8e371.jpg

Еще одно небольшое лирическое... Cloth очень глубоко интегрирован в программу, в связи с этим это самый сильный и гибкий симулятор на сегодняшний день ( конечно после своих родителей партиклов). Думаю это мнение также полностью разделяют пользователи Майки. Он прекрасно понимает происходящее внизу и вверху стека, так еще и способен принимать эти изменения в себя. Стек можно сравнить с карточной колодой, которую можно тасовать и раскладывать как угодно Вам, но при этом все карты будут работать на вашего Джокера Cloth. Нужна всего лишь малость, стать шулером ! ))) И поверьте, когда это происходит, все невозможное становится сразу абсолютно реальным.Помимо своей прямой задачи симуляции ткани он становится помощником и в других случаях, но это уже тема для отдельного разговора.

Итак мы медленно и верно подошли к симуляции. Она будет состоять из трех этапов:

1. набор общей формы

2. уточнение формы с учетом особенностей таких как строчки, защипы, пуговицы и прочее

3. создание складок

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

b50bd177f9a40e9549c4d87f75666ed2.jpg

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

- внизу стека выделяем нашу группу из вершин по линии швов

- выше Cloth добавляем Edit Poly и принимаем наше выделение

- для выделенного делаем Push со значением минус 2 мм.

- вносим рандомность модификатором Noise

b858d392705792dea2b7d036e460b74d.jpg

- переносим сделанные изменения в клоуз (1)(2), при этом обязательно должно быть включено отображение вершины стека (3), после чего вершину стека можно либо удалить, если она больше не потребуется, либо отключить, если мы воспользуемся модификаторами вновь. Удаляем только Push.

2d41d3628c8bb342004aca6322c57293.jpg

- делаем захват текущего состояния (1) и указываем в разделе Keep Shape как полотно будет держать захваченную форму (2). Оставим Bend - углы между поликами 100%, а Stretch - длину ребер сделаем как у исходной формы 0%. Добавляем небольшое давление (3) Включаем самоколлизию полотна (4), отключаем отображение и использование швов (5) и гравитацию (6). Запускаем локальную симуляцию (7).

5a65a5039de33033efdae473ba135ca4.jpg

Когда общая форма немного округлилась останавливаем симуляцию (1) и отключаем использование захваченного состояния (2)

b0edf9ca90627ff30790dba88d35208e.jpg

На подуровне Group (1) принимаем выделение с низа стека (2), создаем из него группу (3) и блокируем ее (4). В свойствах полотна поднимем давление до 12 (5)

9461ae5a084007a550859d7effca23ee.jpg

Снова локальная симуляция (это уже второй этап) до удовлетворяющего нас результата. На этом этапе можно также скорректировать следы от взаимодействия с другими объектами.

000d17a1dc54a32a4b8a258c8aad93c0.jpg

Для дальнейшей работы нам необходимо сделать копию полученной формы и добавить ее в симуляцию как объект твердой коллизии:-добавляем Edit Poly в вершине стека (1) и детачим копии всех элементов в новый объект (2). После чего модификатор удаляем.

a79907c241bf5f789a7068b8c0397c58.jpg

Для нового объекта Push со значением минус 2 мм., чтобы он оказался внутри, Relax по дефолту и подключаем к симуляции.

59c8bb3d3027d74ac6cb0bde40f61ad4.jpg

Для исходного объекта повторяем трюк с вершиной стека:

- включаем Edit Poly.

- включаем Noise немного корректируем параметры по вкусу.

- переносим сделанные изменения в клоуз.

- удаляем вершину стека.

Зададим формирование дополнительных складок уложив подходящую черно-белую карту бампа в слот текстурной карты (1) раздела Bend Map (2) свитка Selected Object (3) и увеличим силу bend-а до 1,0 .

b65c03bbad61d2b7f822b92efb9771ca.jpg

В свойствах полотна: уменьшаем сопротивление изгибу (1), уменьшаем давление (2), чтобы полотно немного растянулось увеличиваем скейлинг (3). В настройках симулятора отключаем самоколлизию полотна (4), Включаем гравитацию (5). Запускаем последнюю симуляцию Simulate Local(6) или Simulate (7).

7fc3ea3a1a7c099ca6f15d0092862693.jpg

Ну вот собственно как-то так...

a69e4d5868ea6e4ce0f5954caf9cb36f.jpg

264f2f01255522f9796ff48eb61a7d07.jpg

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

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

Желаю удачных экспериментов !

7c513cdbef42f935eede754b56b57be6.jpg

model

P.S. Разумеется это лишь самая вершинка айсберга под названием Cloth, очень многое осталось незатронутым.Писать о нем можно бесконечно, но тогда это был бы уже не урок, а целая книга.)

И немного бородатого юмора:

- Алло! Извините я туда попал ?

- Нет! Вас послать, куда надо !?