Как вы уже догадались из названия, в данном уроке мы будем создавать процедурный материал ткани. Это будет один материал с четырьмя различными текстурами для различных типов ткани. На этом со вступительной частью закончим и перейдем непосредственно к уроку.
Текстовый урок
Для данного урока я подготовил небольшую сцену, в которой присутствует плоскость с модификатором ткани. Не забудьте выполнить развертку плоскости перед тем, как приступать к симуляции ткани. На изображении ниже вы можете видеть настройки симуляции:
В качестве текстуры ткани будет выступать нод 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:
Установите любой цвет для ткани:
На этом урок закончен! Надеюсь он вам понравился. Обязательно поделитесь своими результатами в комментариях.
Текстурирование в Blender
После завершения процесса моделирования возникает необходимость наложения материалов или текстур на объект. В данном уроке будет затронут непосредственно процесс текстурирования. Но сама по себе текстура без материала не может быть наложена. Поэтому в blender всегда необходимо создать материал перед наложением текстур.
После того, как Вы создали материал, возле вкладки Материала появится вкладка Текстур. Для создания новой текстуры, нужно перейти в нее и нажать кнопку New.
- Канал текстуры
В Blender можно накладывать несколько текстур на один объект. - Имя текстуры
В данном поле можно задать осмысленное имя текстуре, чтобы потом легко ее находить. - Тип текстуры
Здесь можно выбрать между встроенными текстурами или загрузить собственную (это может быть изображение или видео). - Mapping
В данном меню Вы можете указать как текстура будет располагаться на объекте, задать смещение и ее размер. - Influence
В меню Influence производятся различные настройки текстуры такие, как: прозрачность, шероховатость, яркость и т.д.
Встроенные типы текстур очень хороши и, довольно часто, с их помощью можно добиться впечатляющих результатов. Но, также бывает необходимым наложить собственную текстуру (кирпичной кладки, каменной стены, кожи…). В таком случае нужно выбрать тип текстуры Image or Movie.
Также в качестве текстуры Вы можете использовать видеофайл. Вы можете указать с какого и по какой кадр должно воспроизводиться видео, зацикливать воспроизведение или нет.
После наложения текстуры Вы можете заметить, что она не совсем ровно ложится на модель. Изменяя тип проекции в меню Mapping, можно изменять способ наложения текстуры. Доступно 4 типа проекции:
- Flat — подходит для плоских объектов
- Cube — для объектов кубической формы
- Tube — для объектов вращения
- Sphere — для сферических объектов
С помощью текстур можно создавать иллюзию изменения формы меш-объекта. В меню Influence установив значение Normal -1, получается вот такой результат (ползунок двигается):
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 позволяет легко комбинировать различные виды анимации, материалы и звуковое сопровождение в одном объекте. Такие составные объекты могут быть добавлены по ссылке и использованы как единое целое в более сложных сценах, что позволяет дизайнеру реализовывать свой замысел без необходимости написания программного кода.
Изменения
[2014-07-04] Изначальная публикация.
[2015-05-07] Исправлен путь к исходным файлам.
Работа с материалами в Blender
Привет, меня зовут Сергей Мингулин, я — 3D-художник и преподаватель курса по созданию стилизованных 3D-персонажей в XYZ. Посмотреть на мои проекты можно здесь. Это — первая статья из цикла о визуализации в Blender.
Сегодня поговорим о том, как настраивать материалы, и какие дополнительные программы и расширения облегчат работу. А ближе к финалу я дам небольшой туториал по созданию интересного эффекта свечения на примере иллициев мутанта — выростов на голове для приманивания добычи.
Substance Painter — программа для текстурирования 3D-моделей или создания текстур/текстурных карт для них. По ходу работы мы будем импортировать текстуры отсюда.
Node Wrangler — аддон, который содержит разнообразные инструменты для улучшения и ускорения воркфлоу, основанного на нодах (node-based workflow).
Активируется он следующим образом:
Переходим во вкладку «Edit», заходим в настройки «Preferences» и в «Add-ons» ставим галочку на соответствующей вкладке. Для удобства ищем аддон через поисковую строку.
После того как портировали нужную модель в Blender, находим вверху вкладку Editor Type и выбираем Shader Editor. Нас перебрасывает в меню.
Material Editor имеет 2 режима:
Surface (поверхность) — сюда можем подключить обычный background (включен по умолчанию) и поменять его цвет или же добавить HDRI текстуру (удалить нод background и добавить Environment texture через Shift+A ). Я остановился на обычном бэкграунде.
Volume (объём) — здесь я добавил шейдер principled volume, который отвечает за «туман» или условную прозрачность атмосферы вокруг объекта.
2. Редактирование объектов, с которым мы и будем сегодня работать.
Чтобы создать нод, нажимаем Shift-A — этот хоткей вызывает панель с вкладками настроек. Мы можем как вручную искать во вкладках интересующую нас, так и ввести название в строку «search», после чего нод появится в меню.
Чтобы создать новый материал без названия и настроек, нажимаем вкладку Material Properties и щёлкаем «+».
Здесь же нажимаем «new», и у нас появляются базовые ноды: Material Output и Principled BSDF, с помощью которых мы будем проводить изменения.
Важно: не забываем активировать Node Wrangler.
Выделяем базовый шейдер и нажимаем Shift+Control+T. Комбинация откроет нам меню выбора файлов. Выделяем нужные нам текстуры и подгружаем.
Читайте также: Куда сдавать остатки ткани
Если по умолчанию в названии файла текстуры есть приписка с её назначением, прога сама привязывает соответствующие файлы к параметрам.
Редактировать эти приписки (или суффиксы/тэги) можно в меню:
Если значение определилось неверно, изменить привязку можно самостоятельно, соединив мышкой output нода и input шейдера.
Кроме того, текстуру можно так же вручную перетянуть из окна в программу и прилинковать.
Назначить материал для модели можно, снова перейдя в 3D Viewport. Выделяем нужный объект, и пакет назначается автоматически. Если нам нужен другой, жмём крестик, а затем вкладку «new» или выбираем из уже имеющихся сохранённых.
Стоит оговориться, что речь пойдёт о модели хайполи с высокой плотностью сетки, которая призвана проиллюстрировать навык дизайнера в рамках портфолио.
В связи с этим, геометрия позволяет нам не использовать отдельную карту под Subsurface scattering, а просто выставить реальное значение рассеивания в соответствующем параметре, исходя из габаритов модели.
Metallic, Transmission и Transmission Roughness мы не используем на теле вообще.
Дальнейший процесс можно разделить условно на 2 этапа: работу над материалами для тела и зубов и настройку иллициев.
Для настройки материала тела мы используем обычный PBR-материал с Metal-Rough workflow или пайплайном. Карты экспортируем из упомянутого в начале статьи Substance Painter.
Наш материал состоит из следующих нодов: Albedo или Base Color, Roughness и Normal Map. Последний используется для мелкой детализации.
Что нужно знать при работе с материалом?
Текстурные карты, которые не передают цвет материала, должны быть в линейном пространстве. Поэтому в Color Space текстур мы ставим:
Non color, либо Liner — для Roughness, Normal и т.д. в зависимости от вашей сборки
Также, в зависимости от того, в каком пайплайне мы работали в Substance Painter и какой там пресет на экспорт текстур (под OpenGL или DirectX), может потребоваться «флипнуть» зелёный канал в Normal Map.
Для этого нажимаем Shift-A, находим Separate RGB и подключаем к нему output Color. Как понятно из названия, этот нод даёт нам провести необходимую манипуляцию с одним из каналов (Red, Green, Blue). Теперь, чтобы инвертировать зелёный канал (G), добавляем нод Invert со значением Fac «1.000» и подключаем обратно через Combine RGB.
Эту конструкцию мы затем подключаем к Normal в Principled BSDF. Roughness (чёрно-белая карта, не требует манипуляций с каналами) подключается в соответствующий слот шейдера, так же как и Albedo (Base Color).
Вот так выгладит готовая сборка материала:
В случае с зубами настройки всё те же. Также флипаем при необходимости зелёный канал в нормалке.
Иллиций — особый ловчий вырост («удочка») на вершине головы у костистых рыб отряда удильщикообразные, служащий для приманивания добычи. Нечто похожее есть и у нашей модели.
Рассмотрим, как распределить свечение по всей длине иллициев, — от наибольшей интенсивности к наименьшей.
Наши «удочки» будут состоять из:
нижнего слоя — овалы внутри, дающие основное свечение на концах;
среднего слоя — так же светящиеся трубки;
верхнего слоя — внешняя оболочка иллициев.
Material Output нижнего слоя состоит из Principled BSDF, который идёт в Surface объекта, и Principled Volume, подсоединённого к параметру «внутреннего объёма».
Так как геометрия объектов простая, Normal Map нам не нужен, и его значения мы оставляем «по умолчанию». Основные манипуляции будем проводить с названными выше нодами.
Первый — это Principled BSDF. Здесь мы задаём Base Color значением HSV (Hue, Saturation, Value), оставляем Roughness по умолчанию и переходим к настройке прозрачности. Так как наш объект будет скрыт под другими слоями, и основное свечение будет исходить из внутреннего объёма, ставим значение Transmission «1.000» — это даёт нам полностью прозрачный объект. А параметр Transmission Roughness позволяет выбрать, насколько матовой или глянцевой будет поверхность (чем больше значение, тем меньше глянца).
Переходим к работе с Volume. Здесь мы задаём цвет внутреннего «тумана» и его плотность, выставив значение Density на 10.000.
- Свежие записи
- Балкон в многоквартирном доме: является ли он общедомовым имуществом?
- Штраф за остекление балкона в 2022: что это и как избежать наказания
- Штраф за мусор с балкона: сколько заплатить за выбрасывание окурков
- Оформление балконного окна: выбираем шторы из органзы
- Как выбрать идеальные шторы для маленькой кухни с балконом