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

Обновлено: 19.05.2024

Привет, меня зовут Сергей Мингулин, я — 3D-художник и преподаватель курса по созданию стилизованных 3D-персонажей в XYZ. Посмотреть на мои проекты можно здесь. Это — первая статья из цикла о визуализации в Blender.

Сегодня поговорим о том, как настраивать материалы, и какие дополнительные программы и расширения облегчат работу. А ближе к финалу я дам небольшой туториал по созданию интересного эффекта свечения на примере иллициев мутанта — выростов на голове для приманивания добычи.

Дополнительные программы для удобства

Substance Painter — программа для текстурирования 3D-моделей или создания текстур/текстурных карт для них. По ходу работы мы будем импортировать текстуры отсюда.

Node Wrangler — аддон, который содержит разнообразные инструменты для улучшения и ускорения воркфлоу, основанного на нодах (node-based workflow).

Активируется он следующим образом:

Как работать в Material Editor

После того как портировали нужную модель в Blender, находим вверху вкладку Editor Type и выбираем Shader Editor. Нас перебрасывает в меню.

Material Editor имеет 2 режима:

Surface (поверхность) — сюда можем подключить обычный background (включен по умолчанию) и поменять его цвет или же добавить HDRI текстуру (удалить нод background и добавить Environment texture через Shift+A ). Я остановился на обычном бэкграунде.

2. Редактирование объектов, с которым мы и будем сегодня работать.

Пример создания пустого материала

Важно: не забываем активировать Node Wrangler.

Выделяем базовый шейдер и нажимаем Shift+Control+T. Комбинация откроет нам меню выбора файлов. Выделяем нужные нам текстуры и подгружаем.

Если по умолчанию в названии файла текстуры есть приписка с её назначением, прога сама привязывает соответствующие файлы к параметрам.

Редактировать эти приписки (или суффиксы/тэги) можно в меню:

Если значение определилось неверно, изменить привязку можно самостоятельно, соединив мышкой output нода и input шейдера.

Кроме того, текстуру можно так же вручную перетянуть из окна в программу и прилинковать.

Настройка материала высокополигональной модели

Стоит оговориться, что речь пойдёт о модели хайполи с высокой плотностью сетки, которая призвана проиллюстрировать навык дизайнера в рамках портфолио.

В связи с этим, геометрия позволяет нам не использовать отдельную карту под 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 и т.д. в зависимости от вашей сборки

Эту конструкцию мы затем подключаем к Normal в Principled BSDF. Roughness (чёрно-белая карта, не требует манипуляций с каналами) подключается в соответствующий слот шейдера, так же как и Albedo (Base Color).

Вот так выгладит готовая сборка материала:

Фиолетовое поле — это наш Normal Map. Не обращаем внимания на неприлинкованные окна.

В случае с зубами настройки всё те же. Также флипаем при необходимости зелёный канал в нормалке.

Пошаговое создание светящихся иллициев

Рассмотрим, как распределить свечение по всей длине иллициев, — от наибольшей интенсивности к наименьшей.

нижнего слоя — овалы внутри, дающие основное свечение на концах;

среднего слоя — так же светящиеся трубки;

верхнего слоя — внешняя оболочка иллициев.

a) Нижний слой

Настройки материала нижнего слоя.

Как настроить свечение?

b) Средний слой

Ноды этого слоя те же, что и у предыдущего. В Principled BSDF значение Roughness мы выставляем меньше, примерно в 3 раза, что даёт нам более глянцевую поверхность. Значение IOR (индекса преломления) оставляем по умолчанию. Transmission, в случае второго слоя, у нас контролируется через Color Ramp и Layer Weight.

Настройки материала среднего слоя.

Layer Weight — нод, из которого мы берём значение Френелевского отражения.

В зависимости от того, под каким углом мы смотрим на поверхность объекта, сам объект кажется нам в большей или меньшей степени прозрачным. Коротко этот эффект можно описать так: чем ближе к 90° угол между направлением взгляда и поверхностью прозрачного объекта, тем более прозрачным он кажется.

Пример: рыба из референса. Мы видим, как поверхность всё больше теряет прозрачность и обретает цвет по краям.

Color Ramp — по своей сути, аналог уровней в Photoshop, с помощью которого мы можем:

1) инвертировать цвета — по умолчанию белый цвет справа, чёрный слева; перетягивая ползунки друг на друга, обращаем цвета.

2) настроить контрастность — чем меньше расстояние между ползунками, тем она больше.

Теперь, соединив этот нод с Transmission, мы получаем следующие параметры: чем ближе к белому цвет, тем прозрачнее будет отображаться материал на рендере.

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

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 при необходимости.

Так выглядит наша модель на рендере. В следующий раз поговорим о том, как выставить свет в соответствии с задачами, и правильно её подать.

В Blender’e, кстати есть режим TexturePaint — как раз специально для рисования текстур поверх 3D-модели прямо в Blender’e. Так-что куда-то что-то импортировать потом экспортировать вообще нет смысла, только время тратить. В инете тьма видеороликов на эту тему:


Текстурирование в Blender


После завершения процесса моделирования возникает необходимость наложения материалов или текстур на объект. В данном уроке будет затронут непосредственно процесс текстурирования. Но сама по себе текстура без материала не может быть наложена. Поэтому в blender всегда необходимо создать материал перед наложением текстур.

После того, как Вы создали материал, возле вкладки Материала появится вкладка Текстур. Для создания новой текстуры, нужно перейти в нее и нажать кнопку New.

  1. Канал текстуры
    В Blender можно накладывать несколько текстур на один объект.
  2. Имя текстуры
    В данном поле можно задать осмысленное имя текстуре, чтобы потом легко ее находить.
  3. Тип текстуры
    Здесь можно выбрать между встроенными текстурами или загрузить собственную (это может быть изображение или видео).
  4. Mapping
    В данном меню Вы можете указать как текстура будет располагаться на объекте, задать смещение и ее размер.
  5. Influence
    В меню Influence производятся различные настройки текстуры такие, как: прозрачность, шероховатость, яркость и т.д.

Встроенные типы текстур очень хороши и, довольно часто, с их помощью можно добиться впечатляющих результатов. Но, также бывает необходимым наложить собственную текстуру (кирпичной кладки, каменной стены, кожи…). В таком случае нужно выбрать тип текстуры Image or Movie.

Также в качестве текстуры Вы можете использовать видеофайл. Вы можете указать с какого и по какой кадр должно воспроизводиться видео, зацикливать воспроизведение или нет.

После наложения текстуры Вы можете заметить, что она не совсем ровно ложится на модель. Изменяя тип проекции в меню Mapping, можно изменять способ наложения текстуры. Доступно 4 типа проекции:

  • Flat – подходит для плоских объектов
  • Cube – для объектов кубической формы
  • Tube – для объектов вращения
  • Sphere – для сферических объектов



С помощью текстур можно создавать иллюзию изменения формы меш-объекта. В меню Influence установив значение Normal -1, получается вот такой результат (ползунок двигается):

UV-развертка необходима для того, что-бы мы могли наложить текстуру на 3D-объект. А если точнее, с помощью развертки мы указываем как именно 2D текстура должна накладываться на 3D объект.

Я буду показывать на примере Blender 2.8. На примере кубика, так как его геометрия самая простая, да и он есть на сцене с самого начала. Если выбрать куб и перейти на вкладку UV-Editing, то вы увидите вот такую картину.

Как сделать UV-развертку в Blender 2.8+

Нажатием на TAB перейдем в режим редактирования и выберем все вершины нажатием A. Слева мы увидим уже готовую развертку для куба.

Как сделать UV-развертку в Blender 2.8+

Но, что делать если геометрия не стандартная? Для этого нужно подумать как разместить швы.

Швы - это разрезы на поверхности 3D объекта, которые разрезают объект так чтобы его можно было развернуть на плоскость.

Хм, наверное звучит не совсем понятно, но думаю я смогу показать все на примере. Давайте изуродуем развертку этого куба как по нашему мнению "будет лучше"(нет)😁.

Я выделил верхние несколько граней. Делается это ЛКМ в режиме выделения граней, который в свою очередь выбирается вверху слева или на цифрах на клавиатуре, нажатием 2.

Как сделать UV-развертку в Blender 2.8+

Далее нужно пометить их как швы. Жмем ПКМ и в меню выбираем Mark seam (Пометить шов). Далее снова выбираем все кнопкой A и сверху в меню выбираем пункт UV. В выпавшем меню жмем Unwrap. Слева отобразиться новая развертка.

Как сделать UV-развертку в Blender 2.8+

Кхм, даа.. Ну, что навыделяли то и получили) Все это было сделано для примера и понимания того как нужно или ненужно делать развертку. Думаю лучше вернуть старую развертку. Выделяем все кнопкой A и помечаем все грани как швы. ПКМ - Mark seam. Далее в меню вверху UV - Unwrap.

Как сделать UV-развертку в Blender 2.8+

Не плохо, но это не то что было. Можно конечно и так пользоваться, но мы ведь хотели "как было". Давайте сотрем все метки швов.

Для этого выберем все грани, ПКМ - Clear seam. UV - Unwrap.

Как ни чего не поменялось? Все должно было сработать!

Ладно ладно, шучу, нужно указать стандартные швы в ручную😊.

У меня получилось что-то такое.

Как сделать UV-развертку в Blender 2.8+

Попробуйте сделать это сами, а что-бы помочь понять "как?". Представьте, что этот куб нужно собрать из картона или бумаги. Слева эта самая бумага и показывается. А швы это разрезы по собранному кубу.

Для упрощения задачи в меню UV есть пункт Live unwrap. Он будет отображать изменения сразу на текстуре. Однако не забывайте, что развертка на текстуре отображается только когда выбрано что-то, например все.

Рисование по объекту

Ну вот вы и разобрались как делать развертку. Возможно даже уже нажали на пункт верхнего меню Texture paint. И при попытке что-то нарисовать у вас вылезла ошибка "нет текстуры". Все правильно. Мы ведь не сохранили текстуру и не назначили ее объекту.

На вкладке Texture paint в верхнем меню выбираем New и в новом окне настраиваем параметры и название будущей текстуры.

Как сделать UV-развертку в Blender 2.8+
Как сделать UV-развертку в Blender 2.8+

И сохраняем текстуру куда угодно, лучше в папку с вашим проектом.

После этого необходимо наложить текстуру на объект. В правом меню выбираем пункт "Настройки материалов" и уже в материале меняем просто цвет на текстуру.

Как сделать UV-развертку в Blender 2.8+
Как сделать UV-развертку в Blender 2.8+
Как сделать UV-развертку в Blender 2.8+

Куб почернел, так как текстура пустая. Теперь можно красить куб удобным способом. Например можно делать это прямо в Blender.

Вы уже находитесь там где нужно. Попробуйте порисовать на кубе, просто левой кнопкой мыши. Слева, на текстуре, сразу будет виден результат.

Как сделать UV-развертку в Blender 2.8+

Текстуру нужно сохранять после изменения, как мы уже сохраняли.

Так же, естественно, можно редактировать текстуру в любом графическом редакторе, например, GIMP, PhotoShop и т.д.

Ну вот, думаю к этому моменту вы уже понимаете как сделать UV-развертку в Blendr 2.8+. Спасибо за внимание и легкого моделирования!

Все процедурные текстуры в Blender основаны на математике. Даже такие нерегулярные структуры, как Voronoi и Noise, на самом деле сгенерированы по четким математическим формулами. Внутри каждого базового нода из редактора материалов Blender зашит точный математический алгоритм, в результате работы которого и получается нужное изображение.

Задать подобный алгоритм в привычной математической записи в Blender нельзя. Однако среди прочих нодов Blender предоставляет пользователю ноды группы Math – оболочку над простейшими математическими операциями. С помощью этих нодов можно самостоятельно строить сложные математические алгоритмы, генерирующие интересные текстуры.

Для примера сгенерируем текстуру с изображением простого круга.

shift+a – Mesh – Plane

на которую будем проецировать создаваемую текстуру. Назначим ей дефолтный материал. В редакторе материалов Node Editor, кроме уже имеющихся нодов, добавим ноды Texture Coordinates и Mapping:

shift+a – Input – Texture Coordinate

shift+a – Vector – Mapping

Соединим выход Object нода Texture Coordinate со входом Vector нода Mapping. Таким образом мы назначаем плоскости систему координат Object, что означает, что центр координат накладываемой текстуры будет совпадать с центом Origin плоскости, а координатные оси текстуры будут направлены так же, как оси плоскости.


Теперь обратим внимание на то, какими исходными данными мы располагаем. Это значения трех координаты X, Y и Z в трехмерном пространстве, которые мы получаем с выхода Vector нода Mapping.

Все процедурные текстуры – трехмерные и описываются не двумя координатами, а тремя. Поэтому в сущности нам нужно построить не круг на плоскости, а сферу в трехмерном пространстве. Сечение сферы по оси Z даст нужный нам круг.

Настало время взять в руки справочник по математике и поискать формулу, связывающую имеющиеся у нас данные о координатах X, Y и Z с необходимой нам формой сферы. Формула легко находится:

Теперь нужно воссоздать эту формулу при помощи нодов в редакторе Node Editor.

Добавим нод, разбивающий Vector на отдельные координаты X, Y, Z:

shift+a – Converter – Separate XYZ

и соединим его с нодом Mapping. Теперь мы имеем доступ к координатам, нужным для построения формулы.

Последовательно по действиям воссоздадим формулу при помощи нодов.

Добавим нод Math:

shift+a – Converter – Math

и переключим его в режим вычитания Subtract. В этом режиме из верхнего входящего значения нода вычитается нижнее значение. На верхний вход подадим координату X, нижний вход сделаем равным нулю (X0 = 0) чтобы круг строился из начала координат. Таким образом мы задали часть формулы X – X0.


Добавим еще один нод Math и переключим его в режим Power – возведение в степень. На верхний вход подадим значение Value нода Subtract, нижнее установим равным 2. Таким образом мы возводим X – X0 в квадрат.


Сделаем такие же группы для координат Y и Z.


Для того, чтобы сложить все три части уравнения, добавим еще два нода Math, переключив их в режим Add. Подключим к ним последовательно блоки для всех трех координат.


Подключим выход последнего нода на вход Color нода Diffuse и в окне 3D_View перейдем в режим Rendered для просмотра результата.


Мы получили искомый круг, но он выглядит размытым. Это потому, что мы никак не ограничили правую часть уравнения – радиус.

Между нодом Duffuse и последним нодом Add вставим еще один нод Math и переключим его в режим Less Than. На верхний вход подадим значение нода Add, а второй установим равный 1. Теперь результат вычислений меньший единицы будет равен 1, а все, что больше – равно 0. Таким образом мы получаем точный процедурный круг с радиусом 1.


Для удобства можно объединить всю математику в группу

и использовать получившуюся процедурную текстуру с кругом в своих рендерах.


Управлять расположением и размером круга также можно меняя значения в ноде Mapping.

Нажмите, чтобы узнать подробности

Цели: Обучать работе с программой Blender. Развивать логическое мышление. Воспитывать познавательный интерес. Проверка домашнего задания. Ход урока: Для сглаживания объектов служат кнопки: Гладко (Set Smooth), для придания рельефа – Плоско (Set Solid). Есть другой способ получения сглаженного объекта. В определенной степени он более гибкий. Это использование модификатора Подразделение поверхности (SubSurf). Следует учитывать, что чем выше уровень, тем больше требуется ресурсов памяти для обработки изображения. Кроме того, если вы хотите получить такое же изображение, как в 3D-окне, то Levels и Render Levels в настройках модификатора Subsurf должны совпадать. Свойства материала Модели, которые мы создавали до этого, имели серый цвет. Очевидно, что для серьезного моделирования создать лишь форму недостаточно, необходимо наделить ее соответствующими свойствами. Часто о свойствах объекта мы судим по его внешнему виду. Например, металлический отблеск на шаре сообщает нам, что он, вероятно, тяжелый. Поэтому одной из важнейших частей 3D-моделирования является применение к моделям материалов и их настройка. Для добавления материала и настройки его свойств существует кнопка материала (выделена на рисунке): В случае отсутствия у объекта материала данная панель будет содержать всего лишь одну кнопку: Создать (Add New), которую следует нажать для добавления материала. Материал — это не только цвет объекта. Существуют множество других его свойств, например, прозрачность и отражающая способность, которые будут рассмотрены ниже. Однако сначала разберем, как поменять цвет объекта. По умолчанию материал имеет серый цвет. Изменить цвет можно так: На панели инструментов щелкнуть кнопку , затем в подразделе Диффузия щелкнуть в белом поле и выбрать нужный цвет. Многие окружающие нас предметы и вещества обладают прозрачностью. Например, вода и стекло. Во многих графических программах есть свойство Альфа (Alpha), обозначающее прозрачность материала. Обычно значение, равное единице, означает полную непрозрачность материала. Приближение значения Alpha к нулю делает материал все более прозрачным. При нулевом значении объект становится невидимым. Пример прозрачного объекта: В Blender можно создать зеркальную поверхность, т.е. поверхность, обладающую отражающей способностью. Для этого на вкладке Отражение (Mirror) следует изменить значение элемента Зеркальность (чем больше будет значение, тем больше будет отражающая способность поверхности). Пример зеркального объекта: Текстура Проще текстуру можно определить как изображение, "накладываемое" на поверхность 3D-модели для создания эффекта определенных свойств материала (мрамора, дерева, металла и др.). В Blender 2.69 для добавления текстуры объекту следует перейти к группе кнопок и щелкнуть кнопку, выделенную на рисунке. К модели можно применить несколько текстур (они располагаются как слои). Если слой занят текстурой, то на вкладке Texture в столбике слоев будет надпись "Tex". Далее в выпадающем списке Тип можно выбрать необходимую текстуру. Обычно, просто добавить текстуру недостаточно. Ее необходимо настроить. Часть настроек находится здесь же (в подразделе Текстуры), а другая в настройках материала (Материалы). Например, цвет объекта настраивается на вкладке Материалы. Одной из часто используемых текстур является Image, которая позволяет накладывать на объект предварительно заготовленное изображение. После добавления данной текстуры на одноименной вкладке следует нажать кнопку Load и выбрать изображение. С помощью этой текстуры удобно получать кирпичную стену, пол с каким-либо покрытием и т.п. (т.е. объекты, состоящие из повторяющихся элементов). При этом рисуется лишь часть изображения, которая впоследствии с помощью настроек текстуры многократно дублируется по объекту. Пример текстур: Практическое задание №1-1. Создание игрушечного домика с садом • Откройте Blender. • Удалим примитив, который находится в каждом новом файле по умолчанию (тот самый куб). Нажмем Delete, затем ENTER подтверждая действие. • Новый объект сцены добавляется туда, где находится объемный курсор. Положение объемного курсора можно указать щелчком ЛКМ. • Меню - Add - Mesh -Cube. Горячие клавиши SHIFT+А/ Mesh -Cube • Добавим плоскость: пробел Mesh - Plane. Увеличить в размерах. Подвинуть куб вверх. • Добавляем сферу, цилиндр, конус. Чтобы поставить объемный курсор в центр объекта - Shift+S - Cursor to Active. • Передвигаем, поворачиваем, масштабируем и вращаем их с помощью горячих клавиш (G, R, S), формируя домик и деревья. • Чтобы сгладить объект - выделить (т.е. перейти на нужный слой) и на панели слева кнопка Smooth • Можно задать размер объекта с клавиатуры или просто посмотреть его размер и координаты (выделить и N). • Выделить несколько объектов - внизу в меню Select выбрать команду Border Select или горячая клавиша В. После этого курсором выделяем нужные объекты. • Копируем некоторые объекты (Shift+D) и строим сцену, как в примере. Задать цвета всем объектам, включая плоскость

Читайте также: