- Секреты Marvelous Designer. Почему MD зависает и не использует ядра на 100%
- Исследование параметра Particles distance.
- Влияние параметра Number of Simulation на скорость симуляции.
- Влияние параметра Self Collision Iteration Count на скорость и качество симуляции одежды.
- Почему MD3 зависает и как с этим бороться.
- Number Of CPU In Use (сколько ядер использует MD4 для симуляции)
- Похожие статьи:
- Ответов: 31 к статье “Секреты Marvelous Designer. Почему MD зависает и не использует ядра на 100%”
- вылеты marvelous designer 8
Секреты Marvelous Designer. Почему MD зависает и не использует ядра на 100%
Обновление (05.11.2018) : ВАЖНО! всё содержание этой статьи применимо к 3-тей, 4-той, к 5-той версии Marvelous Designer и к 6-той, к седьмой и восьмой версиям.
Обновление (22.01.2015): добавил картинку (в конце статьи), где искать параметр Number Of CPU In Use, который отвечает за количество ядер, которые принимают участие в симуляции ткани (по умолчанию там стоит значение 4). И если у вас больше, чем четыре логических (не физических) ядер, то нужно этот параметр увеличить.
Обновление (03.04.2014): добавил исследований по новым параметрам.
В этой статье я поделюсь теми наблюдениями (ставшие для одних советами, а для других были до этих пор секретами ), которые помогли мне более эффективно симулировать одежду в Marvelous Designer 3 (MD3).
Наверное, это многих раздражает, что MD3 не использует во время симуляции все ядра на 100%. И если вы уже нашли параметр Number Of CPU In Use (картинка, где его искать в конце статьи) и поставили там значение, равное количеству логических ядер у вас на компе, а ядра всё равно не загружаются на 100%, то продолжайте читать. А если еще не нашли, то сначала найдите и порадуйтесь разнице , а потом тоже продолжайте читать.
Оказывается, ядра начнут загружаться максимальнее, если уменьшить расстоянием между частицами (Particles distance), что означает, что мы увеличим количество полигонов.
В теории, кажется, что если увеличивать количество частиц до определённого момента, то можно достичь увеличения качества симуляции бесплатно, за счёт неиспользуемых ядер. Но проделав эксперименты, я доказал, что это не так. Смотрите сами.
Исследование параметра Particles distance.
Это график зависимости времени симуляции в MD3 от количества полигонов на ткани.
Эксперимент я проделывал вот на такой одежде на настройках Complete:
В обычном состоянии (когда нету никаких глюков, выворотов, взрывов и запутываний ткани) для вышеприведённой одежды с расстоянием между частицами (Particles distance) 5 мм, MD3 кушает 1.4 ГБ оперативки и 40% процессора (спецификация моего компа) на всём процессе симуляции.
Таким образом, я выяснил, что чем больше полигонов в одежде, тем больше процессора и тем больше оперативной памяти кушает Marvelous Designer 3.
Причём зависимость (как вы видите на графике выше) степенная
- Y — время симуляции.
- X — расстояние между частицами.
- 1400 — это коэффициент для моей одежды (у вас он будет другим).
Т.е., если грубо, то расстояние между частицами нужно умножить само на себя три раза, чтобы понять на сколько увеличится время симуляции.
К примеру, если расстояние между частицами было 10 и, соответственно, время симуляции Y = 1400/(10*10*10) = 1,4 секунды, то, при уменьшении расстояния между частицами в два раза (до 5), время симуляции одного кадра возрастёт до Y = 1400/(5*5*5) = 11 секунд!
Время выросло в восемь(!) раз, хотя расстояние между частицами уменьшили только в двое.
Вывод: с параметром Particles distance нужно быть осторожным.
Влияние параметра Number of Simulation на скорость симуляции.
В настройках качества симуляции есть параметр Number of Simulation, который отвечает за количество проделанных симуляций за один кадр. По умолчанию там стоит значение 5. Это значит, что между каждым кадром MD3 будет симулить поведение вашей одежды пять раз. Потом он эти поведения усредняет и показывает вам усреднённое значение.
Таким образом, накручивание этого параметра помогает (в теории) избавится от мелкого дрожания 3D ткани. На практике это тоже есть, но эффект очень незначителен (или просто у меня попадались такие случаи, что я разница была не очень большой).
Вот график зависимости скорости симуляции одежды от параметра Number of Simulation.
Формула получается линейная:
- Y — время симуляции.
- X — количество симуляций (Number of Simulation).
- 5 — коэффициент для моей одежды (у вас он будет другим).
Вывод: количество симуляций — это и есть ИМЕННО КОЛИЧЕСТВО симуляций. Т.е. если было 5, а вы сделали 10 (увеличили в два раза), то и время симуляции увеличится в 2 раза.
Влияние параметра Self Collision Iteration Count на скорость и качество симуляции одежды.
Похоже, что Self Collision Iteration Count — это самый неоднозначный параметр.
Во-первых, его значение можно поставить от 1 до 10, но MD3 не запоминает значение этого параметра выше 5. (и это также видно на графике ниже)
Во-вторых, его увеличение не всегда приводит к улучшению симуляции, а иногда даже наоборот.
График скорости имеет приблизительно логарифмический вид. Это значит, что сначала время симуляции растёт, а потом, начиная с некоторого значения — перестаёт расти, как бы сильно вы этот параметр не увеличивали:
По идее, этот параметр призван улучшить симуляцию в тех местах, где ткань взаимодействует сама с собой. И поскольку увеличение этого параметра даётся нам почти даром, то я очень часто накручивал его до максимума. Но потом понял, что качество симуляции от этого не выигрывает.
Ткань начинает импульсивно взрываться, если есть места, где ткань зажуёт меш аватара (в подмышках или в локте), при накрученном параметре Self Collision Iteration Count до 5 и больше. А при Self Collision Iteration Count 1 такого не происходит. Т.е. эти ошибки заживывания ткани игнорируются.
А на практике, обычно, так и бывает — куча проникновений меша в меш. Поэтому, чтобы ткань не взрывалась, пытаясь вытащить себя из себя же, я держу этот параметр на единице.
На видео ниже видны такие взрывы:
Вывод: параметр количества самопроникновений стоит накручивать (максимум — это 5, дальше можете не увеличивать, я думаю, что больше пяти он физически не работает), только если вам все другие методы не помогли и вы уверены, что у вас аватар не зажёвывает ткань.
Почему MD3 зависает и как с этим бороться.
Я заметил, что когда с тканью случается глюк (её где-то между мешем защемило и она начинает запутываться или её «рвёт» слишком резкое движение аватара), то программа вешает всю систему (т.е. все ядра работают на 100%), а еще бешено и непрерывно растёт потребление оперативной памяти.
Если вы видите подобные симптомы у себя, то можете сразу убивать процесс MD3_Personal_x64.exe. Шанс, что вы сможете остановить такую симуляцию почти нулевой.
Чтобы избежать этого, нужно тщательно следить за кучей факторов. Я приведу некоторые из них. Наиболее глючные сверху.
- чтобы ткань на защемляло между мешем;
- если происходит защемление, то чтобы параметр Self Collision Iteration Count был равен 1;
- чтобы аватар никакой своей частью не двигался очень резко;
- чтобы совпадал номер слоя для соприкасающейся ткани;
- чтобы не было большой разницы плотности полигонов соприкасающихся тканей;
- чтобы не использовались без крайней необходимости параметры Srinkage Weft и Warp (сжатие и расстяжение ткани по горизонтали и вертикали);
- чтобы не использовался без крайней необходимости параметр эластичности (бывает лучше сильно завысить силу трения, чем стянуть одежду резинкой).
Number Of CPU In Use (сколько ядер использует MD4 для симуляции)
Обязательно поставьте параметр Number Of CPU In Use равным количеству логических ядер в вашей системе. К примеру, у меня вот такой процессор. В нём 6 физических ядер, но 12 логических. Соответственно, я выставляю Number Of CPU In Use = 12. Поскольку, по умолчанию, там стоит число 4:
Чтобы найти параметр Number Of CPU In Use, нужно в меню Preferences нажать Simulation Properties, тогда откроется панель Property Editor, где он и находится.
Статья еще пишется. Заходите позже, чтобы узнать все секреты
P.S. Девушка на заглавной картинке сделана мексиканским 3D художником Carlos Ortega Elizalde в Marvelous Designer 2 и Maya 2013 (текстуры в Mudbox, а рендер — Mental Ray). Оригинал смотрите там .
Подпишитесь на обновление блога (вот 3 причины для этого).
Похожие статьи:
- На что не стоит тратить своё время в Marvelous Designer 4 Когда кто-то только начинает изучать Marvelous Designer (MD3 или MD4), то частенько залипает на некоторых моментах. Вот я и попытаюсь…
- Что нового в Marvelous Designer 5 (MD5) Как вы уже наверное знаете, где-то в сентябре 2015-го или чуть позже выйдет новая версия отличного и быстрого инструмента для…
- Создание 3D одежды для фильма Хоббит в Marvelous Designer 2 Старший моделер компании Weta Digital Джеймс Мур рассказал об использовании программы Marvelous Designer 2 в фильме «Хоббит», а я перевёл…
- Как избавиться от дрожания ткани при её… Часто при симуляции 3D ткани выходит так, что в каком-то проблемном месте она трясётся, дрожит, подпрыгивает, дёргается (обычно без…
- Ищу 3D-художника для симуляции одежды в Marvelous Designer. Обновление: некоторую одежду для фильма Хоббит создавали в Marvelous Designer (ссылка ниже по тексту). Есть такой замечательный инструмент Marvelous Designer…
- Симуляция длинных волос в 3ds Max с помощью ткани из… Метод симуляции, который я опишу ниже, годится для любых длинных 3D волос в 3ds Max, сделанных любым способом. Сначала смотрите,…
- Теперь MD3 умеет превращать любой 3D меш из… Наконец-то! Разработчики редактора для пошива и симуляции 3D одежды — Marvelous Designer выпустили обновление для третьей версии, где добавили возможность…
Вам понравилась статья ? Хотите отблагодарить автора? Расскажите о ней друзьям.
Или подпишитесь на обновление блога по E-Mail.
Ответов: 31 к статье “Секреты Marvelous Designer. Почему MD зависает и не использует ядра на 100%”
А не подскажите из-за чего ткань может частично игнорировать аватара? В некоторых местах, она как будто не видит его, проходит насквозь и зацепляется в другом месте.
Причин может быть очень много. Первое что приходит на ум:
+ аватар очень быстро двигается (нужно уменьшить Time Step);
+ у аватара очень крупные полигоны;
+ у ткани очень крупные полигоны.
Причины того, что ткань цепляется:
+ резкая смена плотности полигонов на аватаре;
+ полигоны стыкуются под острыми углами.
Общий совет — нужно увеличить качество симуляции.
У меня вопрос к Вам, Юрий. Как я понял — Вы работаете в 3ds max.
А почему симулируете одежду в Marvelous Designer, а не модулем Cloth?
А вы пробовали шить одежду или симулить её в 3ds Max? По сравнению с MD3 — это пытка.
Нет, не пробовал. Я только начал изучать 3ds max.
А не подскажете, где найти внятные уроки по MD3 на русском?
(с английским у меня туго)
Да там особо и не нужно знание английского. Смотрите, что происходит на экране и повторяете то же самое
Вот куча видеоуроков на официальном канале MD .
Также есть еще помощь, переведённая на русский .
Подскажите пожалуйста, где менять параметр Number Of CPU In Use?
Ну что ж вы так? Давайте будем учиться пользоваться Help’ом
Нашел, но он только при симуляции движения лекала работает?
Источник
вылеты marvelous designer 8
в общем такая тема: скачиваю я mv 8 и сталкиваюсь с регулярными вылетами, почесал я репу и начал искать что да почему. железо у меня не самое слабое (amd rx vega 56, ryzen 5 1600x, 8 gb ddr4 3200). по итогу выяснил лишь 2 вещи: 1. лично у меня имя модуля с ошибкой: stackhash_2264, а код исключения: c0000005. пошел я в гугл значит. то советуют сделать откат до более ранних обновлений win 10, то драйвера amd откатить, то говорят вирус (стандартная отмаза «спецов») и по итогу я получил еще больше вопросов и паники, ведь если прочитать все что пишут то надо срочно менять видеокарту, переехать на другую планету, переустановить win и прочее. 2. включив метод шерлока начал копать что именно триггерит мою прогу. это алгоритм сохранения и сам формат файлов md, а так же клик лкм по предохраненным объектам в окне 3д
как это происходило у меня:
1. включил программу, выбрал как новичок аватар и гармент посмотреть что да как работает, нажимаешь на гармент (в 3д окне, это важно ведь как выяснилось позже только из него следуют вылеты) — моментальный вылет. ладно.
2. включил программу. создал новый файл. создал прямоугольник, поигрался с ним, решил вставить точку на ребро (вижу окно подгрузки, которое по сути и есть автосейв (как я понял когда автосейв стоит на мелких значениях, типа 3-х минут, то автобэкап включается чуть ли не при каждом пердеже). перехожу я значит в 3д окно подвигать его. опа вылет. опять.
3. включил программу. открыл в этот раз автобэкап, играюсь играюсь я значит тут думаю дай ка сохраню через обычный сейв. сохраняю иду дальше в сцену кликаю по классике в 3д окно (в любое место) идет краш. ладно.
методом 100500 вылетов сделал вывод и нормализовал юзабилити. лично у меня все обстоит так: все что завязано на обычных сохранениях — провоцирует вылет. импортировал сохраненный гармент потом зашел в 3д переместить — вылет. сохранил и перезашел перешел в 3д переместить — вылет. нажал лкм в 3д сцене на на любом предохраненном объекте из библиотеки — вылет.
как я это починил для себя: obj импорты и экспорты работают идеально, возможно другие форматы тоже, нужно проверить. автосейвы поставил на 60, если чувствую что нужно сохраниться (насильно) ставлю автосейв на минуту и ставлю точку на грани потом кликаю в 3д окно и идет вылет с идеальным сейвом. и тут еще одна деталь, дальше я могу работать только если я запускаю не тот самый автосейв а md и у же там в контекстном меню загружаю автосейв.
в общем обычный алгоритм обычных сохранений сломан либо что-то его ломает, что делать с этим лично я без понятия, уже устанавливал 6 и 7 md и везде та же проблема, что именно воздействует так на программу не понятно. по факту теперь могу юзать прогу полноценно, в самой программе проблем не наблюдается, 2 часа сидел и все норм. по крайней мере я нашел триггеры и теперь смогу осилить это забагованное чудо. надеюсь кому-то поможет этот бред. лично мне это тупо дало возможность юзать это, т.к. у меня не ssd и вылеты каждые 3 мин просто вымораживают. если у кого еще есть лайфхаки буду рад узнать.
Источник