Бесплатные 3D Модели

Как симулировать реалистичную ткань при помощи физики в Blender

Автор: Filippo Veniero

Всё, кто связывает себя с CG, рано или поздно сталкиваются с симуляцией ткани: шторы в интерьере, платье, футболка на персонаже…

Когда мы устанавливаем мешу модификатор cloth, физический движок Blender представляет вершины меша так, будто бы они соединены между собой сетью пружин. Различные параметры, такие как: структура материала, гибкость, жёсткость, — определяют насколько пружины будут растягиваться и сжиматься, а также с какой скоростью. Таким образом мы можем создавать плотную ткань, вроде кожи, мягкую как шёлк или эластичную как резина.

В панели Cloth существует несколько уже готовых к использованию материалов: Cotton (хлопок), Denim (хлопчатобумажная ткань), Leather (кожа), Rubber (резина) и Silk (шёлк). Однако, мы можем симулировать любые другие виды ткани, какие захотим, изменив следующие параметры:

  • Quality (качество): Этот параметр руководит количеством шагов симуляции на кадр. Более высокое качество даёт более реалистичную симуляцию.
  • Mass (Вес): Больший вес даёт вам более тяжёлую ткань.
  • Structural (Структурность): этот параметр определяет жёсткость структуры ткани.
  • Bending (гибкость): коэффициент помятости? Более высокие значения дают большие складки.
  • Spring (упругость): это затухание скорости ткани.
  • Air (воздушное сопротивление): если установить на ноль, то вся ткань будет падать с равномерной скоростью.
  • Velocity (скорость): Понижение этого параметра поможет ткани достичь состояния покоя намного быстрее.
  • Pinning (Прикалывание): это позволяет приколоть (закрепить) определённые вершины меша.
  • Cloth Cache (кэширование ткани): в этой панели вы найдёте кнопки Bake и Disc Cache Enable
  • Cloth Collision (соприкосновение ткани): В этой панели мы можем установить параметры, которые определяют как меш ткани взаимодействует с другими мешами и сам с собой.
  • Distance (Расстояние): Максимальное значение между мешем ткани и объектом соприкосновения (Collision). Очень важный параметр.
  • Friction (трение): коэффициент трения между объектом и тканью. В этом архиве вы можете найти видео под названием «cloth_setting_test.avi» с некоторыми тестами ткани.

Далее мы создадим правдоподобную ткань, двигаясь от настроек панели физики в Blender, до создания текстуры в Inkscape.

Настройка сцены

Сцена очень проста в построении. Сначала добавьте меш обезьянки (старая добрая Сюзанна) в центр сцены, установите её на Smooth и добавьте модификатор Subsurf. Добавьте плоскость под Сюзанной, затем в режиме редактирования экструдируйте две вершины по оси Z. Установите меш на Smooth и добавьте модификатор Subsurf, если понадобится. Вы можете добавить петель, чтобы понизить изгиб. Последний меш который осталось добавить это плоскость над Сюзанной (ткань для симуляции). Установите её на Smooth, сделайте подразбиение в режиме редактирования дважды и добавьте модификатор Subsurf.

Начало симуляции

В объектном режиме выберите плоскость под Сюзанной и в панели Physics включите Collision (настройки по умолчанию отлично подойдут). Повторите этот процесс с Сюзанной, выберите плоскость над ней и включите Cloth. Мы слегка изменим настройки по умолчанию, увеличив Quality до 20 шагов и плотность Air до 4 (это сделает ткань более стабильной). В панели Cloth Collision установите Quality на 10 и включите Self Collision (Quality 5), таким образом меш будет взаимодействовать с собой. Теперь вы можете нажать Bake и пойти выпить кофе.

Начало текстурирования

Далее откройте Inkscape и создайте закрытый путь (closed path). Используйте Pattern Along Path с простым узором (как например кольцо или треугольник) и командой Inset создайте внутренний путь (internal path) с разными цветами. Сдублируйте объекты, чтобы левый край был выровнен по правому, а верхний по нижнему. Экспортируйте изображение как растр, откройте GIMP, создайте новое изображение и перейдите в Filters> Artistic>Apply Canvas. Теперь вы можете сохранить изображение в формате JPEG.

Добавим света

Схема освещения очень важна, для того чтобы добиться хорошего рендера. Здесь мы будем использовать студийную схему освещения: два источника по бокам (один тёплый, а второй холодный) и плоскости эмиттеры наверху сцены (заполняющий свет). Эта простая, но функциональная схема даст реалистичные отражения на ткани. Не забудьте установить Ambient Light на панели World на 0, в противном случае ваш рендер будет слишком контрастный.

Используем материалы

Теперь мы сконцентрируемся на материале ткани. Перейдите на нулевой кадр, выберите меш ткани и сделайте его развёртку в режиме редактирования. Добавьте новый материал, используя смесь вельветового и глянцевого шейдеров, затем ноду текстуры (загрузите бесшовную текстуру) и подсоедините её к двум шейдерм. Далее добавьте ноду маппинга (mapping) к текстурной ноде и измените значение Scale, чтобы уменьшить размер узора. Теперь вы можете использовать другу текстурную ноду (с изображением холста), чтобы смешать два материала.

Перейдём к рендерингу и пост-обработке

Для визуализации мы будем использовать Cycles, поэтому выберем хороший угол камеры, установим Сюзанну в центре кадра и визуализируем сцену. Используя 500 проходов для среднего разрешения изображения, мы достигнем приемлемого результата, а также мы используем DOF для достижения глубины изображения. В конце рендера, используйте GIMP для увеличения контраста при помощи инструмента Curves. Если вы хотите отрендерить видео, выберите видео формат в панели Output и кликните на анимацию.

Решение проблем

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

  • Первое решение это увеличить Quality симуляции в панели Cloth. В данном случае вероятность того, что взаимодействие пройдёт правильно будет выше.
  • Если проблема осталась, увеличьте Distance в панели Cloth Collision, в тоже время делая это, подразумевается, что симуляция будет работать менее точно, чем раньше.

Урок был взят и переведён с сайта: 3dartistonline.com.