Процедурный материал ткани в Cycles
Как вы уже догадались из названия, в данном уроке мы будем создавать процедурный материал ткани. Это будет один материал с четырьмя различными текстурами для различных типов ткани. На этом со вступительной частью закончим и перейдем непосредственно к уроку.
Видеоурок
Текстовый урок
Для данного урока я подготовил небольшую сцену, в которой присутствует плоскость с модификатором ткани. Не забудьте выполнить развертку плоскости перед тем, как приступать к симуляции ткани. На изображении ниже вы можете видеть настройки симуляции:
В качестве текстуры ткани будет выступать нод Wave texture. Добавьте также ноды Texture Coordinate и Mapping и выставите настройки в соответствии с изображением:
Продублируйте ноды Mapping и Wave texture и измените настройки нода Mapping: вращение по оси Z — 135° и масштаб по оси X — 1:
Теперь смешайте оба паттерна с помощью нода MixRGB (режим Subtract). В итоге мы получим текстуру похожую на ткань:
Так как мы собираемся создать еще несколько паттернов, выделите ноды Mapping, Wave и Mix и объедините их в группу (назовите ее pattern 1 ). Подключите входы Scale обоих нодов Wave к входным значениям группы:
Продублируйте только что созданную группу нодов и переименуйте ее в pattern 2 . Также создайте для нее нового пользователя нажав кнопку 2 справа от названия группы нодов:
Измените масштаб по оси X для первого нода Mapping на 1 и масштаб по оси Y на 0.01. Для первого нода Wave установите все оставшиеся параметры в 0:
Подключите нод ColorRamp и измените положения его ползунков, чтобы создать более контрастный паттерн:
Установите оба значения Scale равными 80 и на этом мы закончили со вторым паттерном:
Продублируйте вторую группу, установите значения Scale равными 40 и назовите ее pattern 3 :
Теперь займемся созданием паттерна войлока. Добавьте ноды Texture Coordinate и Mapping и измените масштабы последнего по осям X, Y и Z на 7, 10 и 10:
Установите любой цвет для ткани:
На этом урок закончен! Надеюсь он вам понравился. Обязательно поделитесь своими результатами в комментариях.
Как сделать ткань в блендере

Всё, кто связывает себя с 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 и кликните на анимацию.

Решение проблем
Порой меш ткани пересекается с мешем взаимодействия при симуляции. Для решения этой проблемы есть несколько советов:
Как создать полотенце — ткань в Blender
Как создать полотенца в Blender.
В этом туториале, посвященном ткани , вы узнаете:
- Основы симуляции ткани
- Как смоделировать реалистично висящее полотенце
- Использование параметра particle system для создания пушистого меха
Никогда не задумывались, почему так много архитектурных интерьеров выглядят холодно и неприветливо? Все сложно. Вы бы не хотели жить в доме, заполненном полностью твердыми поверхностями, поэтому не удивительно, что они нам не нравятся и в рендере.
Ткань помогает сделать твердые поверхности плавным мякгим, комфортным материалом.
В этом уроке я дам советы и расскажу о некоторых хитростях, как сделать красивые пушистые полотенца, которые дополнят вашу сцену, добавив привлекательности.
По методике этого урока можно создать практически любую мягкую ткань: скатерти, одеяла, шелковое постельное белье и т. д. Представляете?
Создание полотенца.
1. Создайте новую сцену, удалите все объекты по умолчанию и замените их плоскостью. Масштабируйте ее дважды вдоль оси X axis (S>X>2). 
2. В edit mode (режим редактирования) добавьте vertical loop cut на середину плоскости таким образом, чтобы фейсы были ровны. 
3. Подразделите плоскость (W>Subdivide) и панели инструментов установите значение 50 (cuts): 
4. Вернитесь в Object Mode, в Physics panel включите Cloth, затем поставьте галочку в Pinning. 
5. Зайдите в меню Weight Paint Mode (Shift+TAB) и нарисуйте точку, где вы хотите повесить полотенце. 
6. В настройках cloth выберите ‘Group’ для параметра Pinning. 
7. Увеличьте Cloth Quality Steps до 12 и включите Self Collision. 
8. Затем отрегулируйте следующие параметры: 
Создание стены для столкновения.
1. Добавьте большую Плоскость позади объекта полотенца и расположите объект полотенце сверху. 
2. Объект полотенце лучше повернуть под углом по оси х, это поможет сделать процесс просчета анимации более реалистичным, полотенце будет медленее падать, и уменьшить вероятность артефактов. 
3. Выберите объект заднего плана и в панели Physics включите Collision. 
4. Выберите объект полотенце и под вкладкой Cloth Cache в панели Physics, установите значение End 100, затем нажмите Bake. 
5. Воспроизведите анимацию, и как только вы будете довольны внешним видом полотенца, перейдите к Modifiers Panel и нажмите Apply под модификатором Cloth. 
Настройка сцены и освещения.
1. Добавьте Spot Lamp и расположите его, как показано на рисунке: 
2. Добавьте Camera в сцену и по желанию рамку . 
3. Выберите Spot Lamp (точечный светильник) и установите параметр strength на 4000, а shadow size на 2m 
Создание материала полотенца.
1. Выберите объект полотенце и добавьте new material с установкой вот следующего нода:

2. Добавьте нод Fresnel (Input > Fresnel), чтобы контролировать параметр Factor в ноде Mix Shader. 
3. Добавьте нод Translucent и установите соединение с нодом Add Shader.
4. Для получения дополнительных настроек цвета полотенца, добавьте нод RGB и присоедините его к ноду Diffuse.
5. Добавьте в нод MixRGB (Color > MixRGB) цвет и подсоедините его к ноду Velvet для получения более четкого бархатного эффекта.
6. Добавьте другой цвет к ноду MixRGB и соедините между собой ноды RGB и Translucent, но выберите второй цвет к черному, чтобы полупрозрачный эффект был темнее.
Перед вами конечный вариант установки материального нода для полотенца:
7. Добавьте модификатор Solidify к объекту полотенце и задайте параметр thickness (толщина) в 2 мм.
8. Добавьте модификатор Edge Split, благодаря чему не будет артефактов по краям полотенца.
Добавление полотенцу ворсистости.
1. Создайте новую Particle System для объекта полотенце со следующими начальными настройками:
2. Увеличьте количество частиц и установите низкий процент Display, чтобы уменьшить загрузку памяти во вьюпорте.
3. Проверьте Advanced, и измените значения Brownian и Random, чтобы придать «меху» более естественный вид.
4. В меню Cycles Hair Settings, установите значения параметров Root и Tip до 0,40.
5. Увеличте общее количество частиц до 1 млн:
6. В Edit Mode выберите все сетки, кроме нижнего края и полосы над ним, как показано на рисунке:
7. В панели Object Data переходим к Vertex Group, и назначаем выделенным вершинам, нажимая assign , значение Weight of 1.
8. Затем, заходим в particle settings, и в опциях vertex group устанавливаем в параметре Density значение ‘Group’.
Конец!
Cимуляция ткани: рабочий процесс
В этой статье описывается технологический процесс работы с вертексной анимацией, использующийся в команде Blend4Web. На примере модели флага рассмотрены следующие вопросы: физическая симуляция поведения ткани, зацикливание и запекание вертексной анимации, настройка двустороннего светопропускающего материала, настройка и экспорт сцены. Исходные файлы вы можете найти в свободном дистрибутиве Blend4Web SDK, по следующему пути: blend4web/blender/tutorials/basic/flag/.
Для удобства работать будем в двух разных файлах. В одном из них будем осуществлять симуляцию ткани (файл flag_simulation.blend ), во втором — настроим цикличное вопроизведение анимации и подготовим сцену для экспорта в движок (файл flag_cashes_mix.blend ).
Подготовка моделей
Начнем с того, что смоделируем флаг, флагшток и окружение. Флаг представляет собой подразделенную плоскость, слегка оттянутую к краям со стороны флагштока, для имитации натяжения. Эта модель будет служить каркасом для симуляции.

Назначим вертекстную группу (с названием «Group») на вершины в областях крепления флага в режиме раскраски весов ( Weight Paint ). В этих местах воздействие симуляции будет минимальным.
Поскольку флаг развевается на ветру, создадим источник ветра.

Флагшток (объект flagpole) — вытянутый параллелепипед с одинарной фаской. В настройках затенения для этого объекта выберем режим сглаживания ( Smooth Shading ). Чтобы избежать затенения по типу сферы, скорректируем нормали вершин с помощью инструмента Normal Editor . Измененные нормали будут автоматически экспортироваться при включенной кнопке Activate

На изображении ниже продемонстрирована модель до и после редактирования. Слева: затенение объекта выдает низкополигональный характер сетки. Справа: затенение корректно подчеркивает область фаски, создавая впечатление высокополигонального объекта.

Также в сцене присутствует объект для визуализации поверхности земли. Динамически генерируемое небо настраивается, как описано в предыдущих уроках.
Физическая симуляция
Следующий этап — настройка физики симуляции. Переходим на вкладку физики, нажимаем кнопку «Ткань» ( Cloth ) и выставляем требуемые значения. Активируем опцию «Закрепление» ( Pinning ). Ниже имеется поле, в котором выберем созданную нами группу вершин «Group».

После активации режима «Ткань» ( Cloth ) объекту автоматически добавляется новый модификатор Cloth . Ниже него добавим модификатор Subsurf для смягчения краев флага при деформациях. В режиме Catmull-Clark этот модификатор дает побочный эффект, который проявляется в закруглении углов на краях. Чтобы избежать этого, назначим ребрам по периметру флага значение свойства Mean Crease , равное 1.

Экспорт анимации в формате кэша точек
Подготовим исходные данные для создания бесшовной циклической анимации. После завершения расчета из всего набора кадров выберем участок (с 155 по 304 кадр) с максимально похожими начальным и конечным кадрами. Сравнивать кадры удобно, переключаясь между ними с помощью горячих клавиш Shift + Right/Left Arrow . Отметим середину этого участка диапазона (кадр 230). Теперь экспортируем два фрагмента анимационной последовательности (155-230 и 230-304 кадры) в формате Lightwave Point Cache (.mdd) — flag_155_230.mdd и flag_229_304.mdd . Опция экспорта становится доступной после активации аддона NewTek MDD format . Эти кэши будут использованы далее для сборки конечной сцены.

Бесшовная анимация
Перенесем подготовленные объекты в файл конечной сцены flag_caches_mix.blend . Удаляем с флага все модификаторы, кроме Subsurf , который применяем к объекту. Назначаем три новых модификатора Mesh Cache . В первые два загружаем подготовленные нами кэши flag_229_304.mdd и flag_155_230.mdd , а третий пока оставляем неактивным — он потребуется позже.

Реализуем бесшовный цикл анимации следующим образом. Переставим местами две половины анимации и совместим их с небольшим нахлестом. На участке нахлеста реализуем смешивание, проставляя анимационные ключи для значений влияния модификаторов ( Influence ).

Избавимся от промежуточных построений и экспортируем результат смешивания в еще один кэш final_flag_1_119.mdd . Загрузим его в третий модификатор Mesh Cache (два верхних модификатора Mesh Cache отключим). На этом создание бесшовного цикла вертексной анимации завершено.
Запекание и экспорт вертексной анимации
Для экспорта вертексной анимации в движок необходимо предварительно «запечь» ее с помощью инструмента Bake Vertex Animation . После «запекания» в настройках анимированного объекта включим опцию Export Vertex Animation , а также Apply Default Animation и Loop для автоматического циклического воспроизведения назначенной на флаг анимации.

Перед экспортом необходимо снять с флага анимацию параметров влияния модификаторов, иначе движок проигнорирует вертексную анимацию. Чтобы эта вспомогательная анимация не исчезла после перезагрузки Blender, активируем для нее режим Fake User (кнопка F).

Настройка ограничивающего объема
Ограничивающие объемы для объектов используются движком для оптимизации количества вызовов отрисовки, и, как правило, рассчитываются автоматически. В то же время в случае вертексной и скелетной анимации возможен выход геометрии модели за пределы ограничивающего объема, в результате чего может наблюдаться исчезновение объектов или теней от них. В таких случаях ограничивающий объем может быть искусственно расширен с помошью инструмента Override Bounding Volumes .

Материал ткани
Так как у объекта отсутствует толщина, для его корректного освещения активируем режим Shading > Double-Sided Lighting в настройках материала.
С целью демонстрации другой функциональности Blend4Web — двусторонних материалов — нанесем разные изображения на сторонах флага: полноцветную и монохромную версию эмблемы. Для экономии видео-памяти оба изображения запечем в одну текстуру ( flag_diff.png ): в каналы RGB — полноцветное, в альфа-канал — монохромное. В узловом материале монохромное изображение служит маской.
Эффект светопропускания реализован с помощью узла TRANSLUCENCY .
Анимация поворота
Для большего эффекта добавим анимацию вращения флага вокруг флагштока, которая будет имитировать изменение направления ветра. Поскольку на флаге уже имеется вертексная анимация, создадим еще один объект (пустой) и анимируем его вращение (в режиме кватернионов). Привяжем к ней флаг связью родитель-потомок.

Добавление звука
Расположим на сцене источник звука, в который загрузим звуковой сэмпл для флага в формате ogg . Активируем опцию Cyclic Play , настроим затухание Attenuation . В результате при приближении к флагу будет заметно увеличение громкости звука.

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