Как создать текстуру для модели в блендере

2
1

| 3,616 | уникальных посетителей |
| 182 | добавили в избранное |



Текстуры в Blender позволяют делать материалы более реалистичными, более похожими на вещества, из которых состоят объекты реального мира. Кроме того, с их помощью можно накладывать готовые изображения на поверхности, создавать рельефные карты и др.
В случае mesh-объектов текстура применяется как бы поверх материала. Здесь нельзя использовать текстуру, не привязав к объекту материал. С другой стороны, с материалом может быть связано несколько текстур. Каждая из них окажет свой эффект на совокупный результат.
Настройки текстур в Blender еще многообразнее, чем материалов. Для более полного освещения этой темы требуется отдельный курс. В данном уроке рассматриваются некоторые моменты работы с текстурами.
В Blender 2.80 работа с текстурами, также как с материалами, претерпела изменения. Текстуры теперь нельзя просто создать и применить к объекту через вкладку Texture редактора Properties. Придется освоить работу еще как минимум в одном редакторе Blender. Это будет Shader Editor – редактор шейдеров.
Разобьем область 3D Viewport по вертикали на две части и в одну загрузим Shader Editor.
Редактор шейдеров
В этом редакторе масштабирование, перемещение (при зажатых шифте и колесе мыши) работают также как в 3D Viewport.
Если объекту добавлен материал, то у него уже будут две ноды. Настройки основной, в данном случае Principled BSDF, дублируются на вкладке материалов, если не выключать там кнопку Use Nodes.
У нод есть сокеты – маленькие точки по бокам. Через них происходит соединение нод. Так одна нода оказывает влияние на какое-то свойство другой. Если мы хотим добавить текстуру, нам нужна нода с текстурой. Добавить ее можно через меню заголовка Add → Texture → … . Также работает Shift + A.
Добавим Brick Texture и соединим ноду со свойством Base Color основной ноды. Мы как бы заменяем цвет на текстуру. Чтобы увидеть эффект в 3D Viewport, не забываем в нем переключиться на затенение Rendered (Z → 8).
Кирпичная текстура — Brick Texture
У ноды Brick Texture много настроек, которые позволяют гибко менять текстуру. Однако здесь нельзя сделать так, чтобы кирпичи были со всех сторон куба.
Настройка Brick Texture
Для этого нужно добавить еще одну ноду – Add → Input → Texture Coordinate. В данном случае соединим ее сокет UV с сокетом Vector в Brick Texture.
Texture Coordinate и Brick Texture
Рассмотрим ноду Image Texture – наложение на поверхность собственной картинки.
Настройка Image Texture в Blender 2.80
Исходно в ноде Image Texture есть кнопки New и Open. С помощью последней загружается готовое изображение. После этого заголовок Image Texture меняется на имя файла.
Если мы просто соединим ноды Image Texture и Texture Coordinate, то скорее всего получим различные эффекты оборачивания объекта картинкой. В этом случае можно вообще обойтись без Texture Coordinate.
Если же мы хотим как-то позиционировать изображение на гранях, повторить его, то между Texture Coordinate и Image Texture добавляется нода Mapping (картирование, отображение), с помощью настроек которой изображение подгоняется под грани объекта. Например, чем больше значение полей Scale, тем мельче будет картинка, и тем чаще она будет повторена. Location перемещает картинку по грани, что позволяет совместить ее края с краями грани или выравнять по центру.
1.3. Материалы и текстуры
Материал – это набор параметров, определяющих характер поверхности объекта (а в некоторых случаях – и его объема). Они включают цвет (если быть точным, несколько компонентов цвета для разных составляющих освещенности), текстуру, параметры прозрачности, отражения и преломления и многие другие. В общем случае, эти параметры определяют закон, по которому свет должен отражаться от поверхности объекта.
Чтобы создавать на компьютере действительно качественные и реалистичные изображения, необходимо понять, как моделируется освещенность виртуальных объектов. В реальном мире свет состоит из мельчайших частиц, называемых фотонами. Фотон имеет свойства, присущие как волнам, так и элементарным частицам. Фотонов настолько много, что обычно можно пренебречь тем, что световое излучение состоит из отдельных частиц (это важно только в квантовой механике), и рассматривать его как непрерывный поток энергии. В этом случае к свету можно применить статистические законы и смоделировать его на компьютере.
Поток энергии отрывается от источника света и распространяется в пространстве, пока не столкнется с каким-либо объектом. При этом одна часть энергии поглощается веществом объекта, а другая – отражается (поэтому мы видим объекты как темные или светлые). Отраженный поток фотонов меняет свою длину волны в зависимости от свойств вещества, в результате чего мы воспринимаем у разных объектов различные цвета. Также некоторая часть фотонов проходит сквозь материал, и объект выглядит прозрачным. Проходя через вещество, световой поток может преломляться (менять направление) и рассеиваться.
Но если объекты отражают свет, почему же далеко не любая поверхность может служить зеркалом? Все дело в том, что идеальным зеркалом является только идеально гладкая поверхность, в то время как обычные поверхности в той или иной степени шероховаты – то есть, состоят из множества микроскопических граней-отражателей. Свет, попадая на поверхность объекта, многократно отражается от этих микрограней и рассеивается в пространстве, в результате чего мы не видим точных отражений, а только сплошной цвет.
В компьютерных моделях, описывающих материал объекта, этот феномен сведен к простым математическим формулам, по которым можно вычислить степень рассеянной (или, как обычно говорят, диффузной) освещенности в любой точке заданной поверхности.
Самая простая такая формула – закон Ламберта (Lambert), который определяет интенсивность диффузной освещенности в точке как косинус угла между направлением света и нормалью к поверхности в этой точке.
Модель Ламберта хорошо подходит только для сравнительно гладких поверхностей. Для моделирования шероховатой, бархатистой или запыленной поверхности часто используют диффузную модель Орена-Найара (Oren-Nayar), которая основана на предположении, что поверхность состоит из множества бесконечно малых микрограней, освещение каждой из которых описывается моделью Ламберта. Модель Орена-Найара имеет параметр для контроля шероховатости поверхности (Roughness). Этот параметр определяет, сколько света отразится назад в направлении источника света.
В Blender чаще всего используются именно эти две диффузные модели. Помимо диффузной, используется также бликовая составляющая освещенности. Бликовая составляющая (specular term) – это количество света, зеркально отраженного поверхностью. Блик – это прямое отражение источника света на поверхности объекта. Если учесть, что в компьютерной графике используются идеализированные объекты, возникает закономерный вопрос: почему точечный источник света, не имеющий объема и невидимый сам по себе, отражается как относительно крупный размытый световой блик? Этот феномен также объясняется наличием микрограней: они имеют собственные вектора нормалей, отклонение которых от основной нормали поверхности меняют интенсивность зеркально отраженного света.
Цвет блика может не совпадать с цветом материала. Это справедливо для некоторых многослойных материалов – например, пластик представляет собой «слоеный пирог» из пигмента и прозрачного полимера: блик дают прозрачные слои, а диффузное рассеивание – цветные. Однородные материалы такого эффекта не производят, и блики на них имеют тот же цвет, что и сами материалы. Яркий пример – металл.
Для сравнительно гладких материалов (таких, как пластик или металл) обычно пользуются эмпирической моделью Фонга (Phong). Она не соответствует точному физическому описанию отражения света, но в большинстве случаев позволяет достичь приемлемых реалистичных результатов. Формула Фонга основана на простом наблюдении: блестящие поверхности дают маленькие и резкие блики, в то время как матовые – большие и размытые. Более согласованная с физикой модель, которая поддерживается в Blender – модель Кука-Торренса (Cook-Torrance). Она основана на допущении, что поверхность состоит из микрограней, каждая из которых является идеальным зеркалом.
Зная, где и как правильно применять эти модели, можно моделировать объекты, по внешнему виду максимально приближенные к реальным.
Так, для матовых поверхностей вроде камня, бетона или бумаги лучше всего подходит модель Ламберта. Блики на пластике, фарфоре, металле, матовом стекле имитируются моделью Фонга. Бархат, вельвет, ковры и некоторые другие виды тканей лучше всего воссоздаются моделями Орена-Найара и Кука-Торренса. В Blender материал объекту можно добавить в редакторе свойств, который по умолчанию находится в правой части окна программы. Переключите панель со значками на Material, добавьте объекту новый материал (если его нет) при помощи кнопки New.
Рассмотрим основные параметры материала.
Diffuse. Цвет и модель диффузной (рассеянной) компоненты освещенности. Вы можете указать цвет, нажав по нему левой кнопкой мыши – появится RGB-палитра с возможностью точного подбора каналов цвета.
Specular. Цвет и модель бликовой (зеркальной) компоненты освещенности. Форма блика зависит от выбранной модели и специфичных для нее параметров – это может быть как маленькая резкая точка, так и большое размытое пятно.
Transparency. Если поставить галочку напротив этого параметра, можно сделать объект прозрачным. Степень прозрачности контролируется параметром Alpha. Существует несколько типов прозрачности, в том числе с поддержкой преломления световых лучей, как и в реальных материалах – мы еще рассмотрим их подробнее в следующей главе.
Mirror. Если поставить галочку напротив этого параметра, поверхность объекта будет зеркально отражать окружающие предметы. Степень отражаемости контролируется параметром Reflectivity.
Текстура
Текстура – это изображение, которое определяет цвет (или какую-либо другую характеристику) материала в каждой точке поверхности. Говорят, что текстура накладывается на поверхность: иными словами, создается особая «карта», сопоставляющая поверхность с плоским изображением. Эту карту называют UV-разверткой или просто разверткой. В Blender вы можете создавать развертки вручную, но в случае использования базовых примитивов за вас это автоматически сделает сама программа.
Текстуру можно добавить в материал, переключившись на Texture на панели со значками свойств. У материала может быть более чем одна текстура – это часто бывает необходимо для создания сложных эффектов. Добавьте первую текстуру, нажав кнопку New. По умолчанию создается процедурная (то есть, автоматически сгенерированная программой) текстура типа «облака» (Clouds). Есть также несколько других типов процедурных текстур: «дерево», «мрамор», диаграмма Вороного, шум и т.д. Естественно, Blender позволяет в качестве текстуры выбрать произвольное растровое изображение: для этого переключите тип текстуры (Type) на Image or Movie («Изображение или фильм») и на вкладке Image нажмите Open. Если ваш объект – куб (или параллелепипед), то можно указать тип автоматической развертки на вкладке «Mapping»: Projection → Cube.
На вкладке Influence («Влияние») можно управлять характеристиками материала, на которые влияет данная текстура. По умолчанию стоит цвет (Color) – текстура влияет на диффузный цвет материала. Она также может влиять на бликовую составляющую, прозрачность, отражаемость и геометрию поверхности.
Текстурирование в Blender
После завершения процесса моделирования возникает необходимость наложения материалов или текстур на объект. В данном уроке будет затронут непосредственно процесс текстурирования. Но сама по себе текстура без материала не может быть наложена. Поэтому в blender всегда необходимо создать материал перед наложением текстур.
После того, как Вы создали материал, возле вкладки Материала появится вкладка Текстур. Для создания новой текстуры, нужно перейти в нее и нажать кнопку New.
- Канал текстуры
В Blender можно накладывать несколько текстур на один объект. - Имя текстуры
В данном поле можно задать осмысленное имя текстуре, чтобы потом легко ее находить. - Тип текстуры
Здесь можно выбрать между встроенными текстурами или загрузить собственную (это может быть изображение или видео). - Mapping
В данном меню Вы можете указать как текстура будет располагаться на объекте, задать смещение и ее размер. - Influence
В меню Influence производятся различные настройки текстуры такие, как: прозрачность, шероховатость, яркость и т.д.
Встроенные типы текстур очень хороши и, довольно часто, с их помощью можно добиться впечатляющих результатов. Но, также бывает необходимым наложить собственную текстуру (кирпичной кладки, каменной стены, кожи…). В таком случае нужно выбрать тип текстуры Image or Movie.
Также в качестве текстуры Вы можете использовать видеофайл. Вы можете указать с какого и по какой кадр должно воспроизводиться видео, зацикливать воспроизведение или нет.
После наложения текстуры Вы можете заметить, что она не совсем ровно ложится на модель. Изменяя тип проекции в меню Mapping, можно изменять способ наложения текстуры. Доступно 4 типа проекции:
- Flat — подходит для плоских объектов
- Cube — для объектов кубической формы
- Tube — для объектов вращения
- Sphere — для сферических объектов

С помощью текстур можно создавать иллюзию изменения формы меш-объекта. В меню Influence установив значение Normal -1, получается вот такой результат (ползунок двигается):
Работа с материалами в Blender
Привет, меня зовут Сергей Мингулин, я — 3D-художник и преподаватель курса по созданию стилизованных 3D-персонажей в XYZ. Посмотреть на мои проекты можно здесь. Это — первая статья из цикла о визуализации в Blender.
Сегодня поговорим о том, как настраивать материалы, и какие дополнительные программы и расширения облегчат работу. А ближе к финалу я дам небольшой туториал по созданию интересного эффекта свечения на примере иллициев мутанта — выростов на голове для приманивания добычи.
Дополнительные программы для удобства
Substance Painter — программа для текстурирования 3D-моделей или создания текстур/текстурных карт для них. По ходу работы мы будем импортировать текстуры отсюда.
Node Wrangler — аддон, который содержит разнообразные инструменты для улучшения и ускорения воркфлоу, основанного на нодах (node-based workflow).
Активируется он следующим образом:
Переходим во вкладку «Edit», заходим в настройки «Preferences» и в «Add-ons» ставим галочку на соответствующей вкладке. Для удобства ищем аддон через поисковую строку.
Как работать в Material Editor
После того как портировали нужную модель в 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 текстур мы ставим:
sRGB — для Albedo
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).
Вот так выгладит готовая сборка материала:
В случае с зубами настройки всё те же. Также флипаем при необходимости зелёный канал в нормалке.
Пошаговое создание светящихся иллициев
Иллиций — особый ловчий вырост («удочка») на вершине головы у костистых рыб отряда удильщикообразные, служащий для приманивания добычи. Нечто похожее есть и у нашей модели.
Рассмотрим, как распределить свечение по всей длине иллициев, — от наибольшей интенсивности к наименьшей.
Наши «удочки» будут состоять из:
нижнего слоя — овалы внутри, дающие основное свечение на концах;
среднего слоя — так же светящиеся трубки;
верхнего слоя — внешняя оболочка иллициев.
a) Нижний слой
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.
Как настроить свечение?
На скриншоте выше мы видим, что Emission поверхности — чёрный. Это значит, что свечение будет исходить не от неё, а от Volume. Для этого мы и задавали максимальную прозрачность оболочки. Так как этот слой будет ещё под двумя, задаём большое значение в параметре Emission Strength («сила излучения») — «1700.000».
b) Средний слой
Ноды этого слоя те же, что и у предыдущего. В Principled BSDF значение Roughness мы выставляем меньше, примерно в 3 раза, что даёт нам более глянцевую поверхность. Значение IOR (индекса преломления) оставляем по умолчанию. Transmission, в случае второго слоя, у нас контролируется через Color Ramp и Layer Weight.
Layer Weight — нод, из которого мы берём значение Френелевского отражения.
В зависимости от того, под каким углом мы смотрим на поверхность объекта, сам объект кажется нам в большей или меньшей степени прозрачным. Коротко этот эффект можно описать так: чем ближе к 90° угол между направлением взгляда и поверхностью прозрачного объекта, тем более прозрачным он кажется.
Пример: рыба из референса. Мы видим, как поверхность всё больше теряет прозрачность и обретает цвет по краям.
Color Ramp — по своей сути, аналог уровней в Photoshop, с помощью которого мы можем:
1) инвертировать цвета — по умолчанию белый цвет справа, чёрный слева; перетягивая ползунки друг на друга, обращаем цвета.
2) настроить контрастность — чем меньше расстояние между ползунками, тем она больше.
Теперь, соединив этот нод с Transmission, мы получаем следующие параметры: чем ближе к белому цвет, тем прозрачнее будет отображаться материал на рендере.
От настройки поверхности переходим к свечению. Оно берётся из нода Principled Volume, который мы также подключаем к Material Output (Volume). Цвет тумана — красный, испускаемого света — оранжевый. Выбираем значение плотности — «1.000», и Emission — «400.000».
Таким образом, получаем плавный переход от более интенсивной точки свечения, расположенной на прозрачном участке, к менее интенсивному по всей длине менее прозрачного стержня.
c) Верхний слой
Наконец, настройки внешней оболочки выглядят следующим образом:
Общий принцип остаётся тот же: Principled BSDF, к которому подсоединяем Bace Color с Color Space sRGB, и упрощённая настройка volume — Volume Absorption.
На последнем останавливаться нет смысла, затронем основные моменты настройки Principled BSDF.
Для Roughness была использована готовая текстура из Substance Painter.
Аналогично применяем готовый градиент к Transmission и миксуем его с уже описанным Layer Weight (откуда берём френель) + Color Ramp (инверт LW).
Чтобы смешать прозрачность по френелю и по градиенту, создаём нод MixRGB и выбираем вариант смешивания Multiply, линкуем их к нему (Color1 и Color2), после чего соединяем нод Multiply с Transmission.
И не забываем инвертировать зелёный канал в Normal Map при необходимости.
Так выглядит наша модель на рендере. В следующий раз поговорим о том, как выставить свет в соответствии с задачами, и правильно её подать.
Если хочешь научиться создавать стилизованных 3D-персонажей — записывайся на курс STYL. Стартуем 1 октября — если записаться сейчас, можно успеть получить скидку.